前段時間我在這裏問了一個問題: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