私はC++で書かれたコードを持っていて、それはWindowsアプリケーションです。
コードをそのままにして、別のプロジェクトを作成したい(C#またはC ++-C#ではなく)
これは、そのWindowsアプリケーションでのいくつかの関数呼び出しを「リッスン」します。
どこから始めればよいのか、それはdllだけなのか、実行可能でなければならないのか、あるいはリスナーを接続する方法さえわかりません。
C++ ライブラリをマネージ モードでコンパイルすると、.dll を C# プロジェクトで使用できます。
WinAPI を使用して別のアプリケーションにフックできるため、プログラムは DLL である必要はありませんが、関数などの呼び出しをリッスンすることはできないと思います。フッキングで捉えることができる独自のプロセスにおける「シグナルラー」...
これは、このケースを見ても論理的です。コンパイラは、最適化などのために、インライン関数をそのままの特殊化に置き換えることがあります。したがって、分岐を完全に削除します。さて、この場合、分岐が発生したかどうかをどのように知ることができますか?.
たぶん、フックする代わりに、デザイン パターンを変更するかもしれません。プロジェクトを変更して (もちろん、可能であれば)、2 つのプロセスが相互にメッセージをやり取りするようにするかもしれません。これは API などを使用して行うことができますが、これはプログラムを OS 固有のものにしますが、これはアプリケーションの一部 (メイン部分) を完全に書き直すようなものです。