2009-10-21 5 views
8

私はC#からWin32を呼び出す必要があります。私は十数回それをやったことがありますが、私は通常、正確な仕掛けを忘れてしまったので、ウェブや古いコードを覗いて、必要なDllImportステートメントが何であるか把握します。C#からWin32を呼び出すより無痛な方法はありますか?

私は一人ですか?

Win32 API全体に必要な宣言を持つ、認可された「Win32」クラスはありますか?すべきであるように思える。たぶん私は何かが欠けているでしょう。

+3

あなたは一人ではありません。 +1 – spender

+1

もちろん、一人ではありません。 +1 –

+1

pinvoke.netは素晴らしいですが、参照するアセンブリがとても素敵です。 –

答えて

1

これは、オープンソースプロジェクトの素晴らしいアイデアのようです。

は/ EMは、キャップを思考の上に置いて、の実行は

0

あなたはReflectorを使用してWin32Nativeを検索することができます。それはPInvokingのために使用できる定義の束を持っています。

1

正しいDllImportステートメントへのアクセスは誰もが言っているように簡単ですが、使い易くするために私は通常C#クラスで必要なWin32関数をラップし、コアヘルパーアセンブリにコンパイルします。次回はアセンブリを参照するだけです。だから私はいくつかのWin32関数が必要な場合は、チャンスはすでに私のヘルパーライブラリには私はそれを追加するだけではないです。

また、リターンコードを例外にマッピングするのではなく、HResultがゼロでない場合、例外がスローされるため、C#アプリケーションはHResultまたはリターンコードについて知る必要はありません。

関連する問題