前段时间我在这里问了一个问题:COM vs non-COM DLL关于从.NET调用经典的C++程序。在.NET中使用Windows API函数
答案(来自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
这就是['MessageBox.Show'](http://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox.show.aspx) – 2013-02-28 19:07:20