我前段时间在这里问了一个问题:COM vs non-COM DLL关于从 .NET 调用经典 C++ 程序。
答案(来自 Hans Passant)是用 Visual C++ 编写一个包装器类,这在我的项目中运行良好(我确实从另一位对 C++ 有更多商业经验的开发人员那里得到了一些帮助)。
我的问题是:是否为 WINAPI 中的某些函数创建了包装类。例如,下面的代码可以在没有包装类的情况下工作:
Imports System.Runtime.InteropServices
Imports System.Text
Public Class Form1
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Ansi)> _
Public Shared Function MessageBox(ByVal hwnd As IntPtr, <MarshalAs(UnmanagedType.LPStr)> ByVal lpString As String, <MarshalAs(UnmanagedType.LPStr)> ByVal lpString2 As String, ByVal cch As Integer) As Integer
End Function
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MessageBox(0, "HelloWorld", "HelloWorld", 0)
End Sub
End Class
最佳答案
围绕 WINAPI 调用的现有包装类称为 System.Windows 命名空间。 ;-)
关于c++ - 在 .NET 中使用 Windows API 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15143425/