在C#中调用非托管代码有多种方法,下面是一些常用的方法:
[DllImport("user32.dll")]
static extern int MessageBox(IntPtr hWnd, string text, string caption, uint type);
COM互操作:如果非托管代码是基于COM对象的,可以使用COM互操作来调用非托管代码。可以使用Visual Studio的COM互操作工具来生成互操作代码,并在C#中调用COM组件。
使用C++/CLI:可以使用C++/CLI编写一个托管包装器来调用非托管代码。在C++/CLI中可以直接调用非托管代码,并将其包装为托管代码,然后在C#中调用这个托管包装器。
使用Windows Runtime Component:如果非托管代码是Windows Runtime组件,可以使用Windows Runtime Component来调用这些组件。可以在C++/CX或C++/WinRT中编写Windows Runtime Component,并在C#中引用和调用这些组件。
这些是一些常用的方法,具体使用哪种方法取决于非托管代码的类型和需要。