数か月ごとに、C# から Win32 を呼び出す必要があることに気付きます。何十回もやったことがありますが、通常は正確な策略を忘れてしまうので、Web や古いコードを調べて、必要な DllImport ステートメントなどを見つけ出します。
私は一人ですか?
Win32 API全体に必要な宣言を持つ認可された「Win32」クラスはありますか? あるはずのようです。多分私は何かが足りない。
http://www.pinvoke.netが役に立つかもしれません。
また、一般的な Win32 機能については、 P/Invoke Interop Assistantを試すことができます。
これは、オープンソースプロジェクトにとって素晴らしいアイデアのように思えます。
/ emは思考の上限を設定し、pinvoke.netに実行されます
誰もが言っているように、正しい DllImport ステートメントにたどり着くのは簡単ですが、簡単に使用できるようにするために、通常は必要な Win32 関数を C# クラスでラップし、コア ヘルパー アセンブリにコンパイルします。次回はアセンブリを参照します。したがって、Win32 関数が必要な場合は、追加するだけでなくても、既にヘルパー ライブラリに含まれている可能性があります。
また、戻りコードを例外にマップします。つまり、HResult がゼロでない場合は例外をスローするため、C# アプリは HResult や戻りコードについて知る必要がありません。
認可された Win32 クラスはありませんが、http://www.pinvoke.netはこれらの重要なリソースです。
Reflectorを使用して Win32Native を検索できます。PInvoking に使用できる一連の定義があります。