0

私は.Netに不慣れで、これを解決しようとしてレンガの壁にぶつかっています....過去数日間十分なグーグル検索を行ってきましたが、漠然とした(少なくとも私にとっては)C#関連の情報しか見つかりませんでした

基本的に、特定の自動化プロセスを実行するために、いくつかのグローバル フックを設定しようとしています。開発環境は VS2008 C++ Windows フォームであるため、呼び出しプログラムによって注入されるネイティブ Dll をコンパイルすることから始めました。戦略は、ネイティブ dll のコールバック proc が .Net プログラム (またはラッパーで管理されている dll) の関数を呼び出し、フィルタリングされた生データ (キーボード/マウス/WM_create/etc) メッセージをさらに処理するために渡すためのものです。

質問: そのような関数のハンドルを挿入した dll に渡すにはどうすればよいですか?

マネージ ラッパーの dll パスを選択する方が簡単ですか、それともマネージ関数とネイティブ関数をメイン アプリケーションに並べて配置するだけですか?

この問題のもう 1 つの暗い面であるマーシャリングをたくさん行う必要があります。マーシャリング関数の正確なドキュメント/例へのリンクはありますか?

よろしくお願いします。
マーク

4

1 に答える 1

0

「Marshal.GetFunctionPointerForDelegate」をご覧ください

于 2013-03-08T21:49:57.703 に答える