0

.NET フレームワーク クラスが Win32 API をカプセル化することはわかっていますが、.NET フレームワーク クラスがどのように Win32 API を呼び出すのか疑問に思っています。

私がこれまでに知っている方法:

  1. P/Invoke 経由
  2. VC++/CLI
  3. 1と2の両方

誰も答えを知っていますか?

4

1 に答える 1

3

ほとんどのフレームワーククラスは、アンマネージAPIを呼び出す必要がある場合にP/Invokeを使用します。System.Windows.FormsでReflectorを起動すると、多くのP/Invokeを実行するNativeMethodsおよびUnsafeNativeMethodsと呼ばれるクラスが表示されます。同様に、System.Drawingには、すべてのGDI + P/Invokesを宣言するSafeNativeMethodsクラスがあります。

あなたが言及していない他の主要な相互運用方法はCOM相互運用です。これがフレームワーク内でどれほど広く使用されているかはわかりませんが、WMI(System.Management)のものの中には、かなり頻繁に使用されているものと、もちろんWinFormsActiveXサポートが使用されているものがあると思います。

于 2009-11-13T05:22:35.230 に答える