0

私はC++で書かれたコードを持っていて、それはWindowsアプリケーションです。

コードをそのままにして、別のプロジェクトを作成したい(C#またはC ++-C#ではなく)

これは、そのWindowsアプリケーションでのいくつかの関数呼び出しを「リッスン」します。

どこから始めればよいのか、それはdllだけなのか、実行可能でなければならないのか、あるいはリスナーを接続する方法さえわかりません。

4

2 に答える 2

0

C++ ライブラリをマネージ モードでコンパイルすると、.dll を C# プロジェクトで使用できます。

于 2012-09-28T21:30:51.153 に答える
0

WinAPI を使用して別のアプリケーションにフックできるため、プログラムは DLL である必要はありませんが、関数などの呼び出しをリッスンすることはできないと思います。フッキングで捉えることができる独自のプロセスにおける「シグナルラー」...

これは、このケースを見ても論理的です。コンパイラは、最適化などのために、インライン関数をそのままの特殊化に置き換えることがあります。したがって、分岐を完全に削除します。さて、この場合、分岐が発生したかどうかをどのように知ることができますか?.

たぶん、フックする代わりに、デザイン パターンを変更するかもしれません。プロジェクトを変更して (もちろん、可能であれば)、2 つのプロセスが相互にメッセージをやり取りするようにするかもしれません。これは API などを使用して行うことができますが、これはプログラムを OS 固有のものにしますが、これはアプリケーションの一部 (メイン部分) を完全に書き直すようなものです。

于 2012-09-28T23:07:35.720 に答える