タグ

c++に関するtatac1のブックマーク (6)

  • APIフック (Cライブラリ関数やWindowsAPIの書き換え) と、その応用例 - Qiita

    概要 モジュールの実行可能領域のインポートセクションを書き替えることで、 Cライブラリ関数やWindowsAPI関数の呼び出しを別の関数呼び出しに差し替えます。 何故これが必要か プロジェクト内のソースがすべて自前で管理されているなら、 置き換えたい関数のラッパー関数を作るとか、もしくは美醜はさておき define で置換もできますし、 今回みたいな大げさなことをする必要はあんまりないです。 問題はサードパーティ製ライブラリの挙動です。 製作元を介さずにこれを書き替える必要って多々あります。 以下、「使用例」の項にいくつか例を示します。 影響範囲など DLLの関数置き換えなどが発生するわけですが、 「え、それって他アプリにも影響するんじゃないの?」って思う方もおられるかもしれませんが、 結論を言うと他アプリには影響しません。(影響を与える手法も存在しますが今回は触れません) 何故なら、書き

    APIフック (Cライブラリ関数やWindowsAPIの書き換え) と、その応用例 - Qiita
  • たのしいHaskellのツールチェインとC++ - 純粋関数空間

    というタイトルで、先日、社内の公開セミナーで話しました。 発表資料はこちら。 Haskellのテストフレームワークとベンチマークフレームワークがよくできているので、 これをC++でも使えるんじゃないかという内容です。 概要 背景として、QuickCheck をもっと多くの人に知って/使って貰いたいというのがあります。 QuickCheckは、普段から使っている人間からすると、よくいろいろなバグを拾ってくれるとても便利なものなのですが、 残念ながら普段開発に利用しているC++には相当のもので完成度の高いものが見当たりません。 だからといって、そこから作るためにC++のテンプレートをいじくりまわすには、私はもう老いてしまいました (与えられた関数にランダムな入力を与えるだけなら簡単なのですが、ジェネレータを自由にいじれる機能がやはり欲しいところで)。 そう思った時に、FFIを使えてQuickC

  • C言語・C++言語用テスティングフレームワーク - Cutter

    最新リリース 2019-09-13にリリースされた1.2.7が最新です。 [ダウンロード] [変更点] Cutterとは Cutterは書きやすさ・デバッグのしやすさを重視したC言語・C++言語用のテスティングフレームワークです。メンテナンスしやすく、利用効果の高い単体テスト(ユニットテスト)の開発を支援します。 また、テストを苦痛ではなく、楽しいものにすることも重視しています。スクリーンショットはテスト結果の通知機能を利用している様子です。文字としてテストのパス・失敗を伝えるだけではなく、視覚的にも通知することで、テスト結果をわかりやすくします。わかりやすいので、頻繁にテストを実行したくなります。この機能はnotify-sendコマンド(Linuxや*BSDなどの場合)またはgrowlnotifyコマンド(macOSの場合)を利用します。 動作環境 CutterはDebian GNU/L

    tatac1
    tatac1 2012/01/16
  • cppcheck

    Static analysis of C/C++ code. Checks for: memory leaks, mismatching allocation-deallocation, buffer overrun, and many more. The goal is 0% false positives. See http://cppcheck.sourceforge.net for more information.

  • C言語静的解析ツールと Ruby 1.9 trunk

    Cppcheck and Splint static analysis tools found several potential errors in the Ruby 1.9 source code such as memory leaks and possible null pointer dereferences. Frama-C was able to verify assertions and preconditions in the code and detect a potential division by zero. Static analysis helps improve software quality by finding bugs early.Read less

    C言語静的解析ツールと Ruby 1.9 trunk
    tatac1
    tatac1 2012/01/13
  • 備忘録 [Haskell]FFI使ってC++バインディングに入門

    この記事はHaskell Advent Calendarのために書いたものです。 FFIでCの関数を呼び出すところまではすんなりいったので、次C++行ってみよう!として ドハマりしたという内容です。 C++でクラスを作成して、ラッパー関数を書き、Haskellから呼び出すという手順でやってみます。 とりあえず何も考えずに以下のコードを書きました。 point.h point.cpp wrapper.cpp main.hs /* point.h */ class Point{ public: Point(int, int); int getX(); int getY(); private: int x, y; }; /* point.cpp */ #include "point.h" Point::Point(int x, int y){ this->x = x; this->y = y;

  • 1