代码之家  ›  专栏  ›  技术社区  ›  Benny

.NET框架类如何调用平台API?

  •  0
  • Benny  · 技术社区  · 15 年前

    我们知道.NET框架类封装了win32 API,现在我想知道.NET框架类如何调用win32 API?

    我目前所知的方式:

    1. 通过P/Invoke
    2. VC++/CLI
    3. 1和2

    有人知道答案吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   itowlson    15 年前

    如果需要调用非托管API,大多数框架类都使用p/invoke。在System.Windows.Forms上启动Reflector,您将看到名为NativeMethods的类和执行 许多 p/调用的。类似地,System.Drawing有一个safeNativeMethods类,它声明了所有gdi+p/调用。

    另一个您没有提到的主要互操作方法是COM互操作。我不知道它在框架中的使用范围有多广,但我想有些wmi(system.management)工具会非常频繁地使用它,当然还有winforms-activex支持。