8

数か月ごとに、C# から Win32 を呼び出す必要があることに気付きます。何十回もやったことがありますが、通常は正確な策略を忘れてしまうので、Web や古いコードを調べて、必要な DllImport ステートメントなどを見つけ出します。

私は一人ですか?

Win32 API全体に必要な宣言を持つ認可された「Win32」クラスはありますか? あるはずのようです。多分私は何かが足りない。

4

6 に答える 6

8

http://www.pinvoke.netが役に立つかもしれません。

また、一般的な Win32 機能については、 P/Invoke Interop Assistantを試すことができます。

于 2009-10-21T02:32:08.567 に答える
1

これは、オープンソースプロジェクトにとって素晴らしいアイデアのように思えます。

/ emは思考の上限を設定し、pinvoke.netに実行されます

于 2009-10-21T02:34:39.497 に答える
1

誰もが言っているように、正しい DllImport ステートメントにたどり着くのは簡単ですが、簡単に使用できるようにするために、通常は必要な Win32 関数を C# クラスでラップし、コア ヘルパー アセンブリにコンパイルします。次回はアセンブリを参照します。したがって、Win32 関数が必要な場合は、追加するだけでなくても、既にヘルパー ライブラリに含まれている可能性があります。

また、戻りコードを例外にマップします。つまり、HResult がゼロでない場合は例外をスローするため、C# アプリは HResult や戻りコードについて知る必要がありません。

于 2009-10-21T04:49:53.080 に答える
1

認可された Win32 クラスはありませんが、http://www.pinvoke.netはこれらの重要なリソースです。

于 2009-10-21T02:32:03.420 に答える
0

チェックアウト: http://code.msdn.microsoft.com/WindowsAPICodePack

于 2009-10-21T04:11:55.637 に答える
0

Reflectorを使用して Win32Native を検索できます。PInvoking に使用できる一連の定義があります。

于 2009-10-21T04:16:03.930 に答える