用vb调用windows API函数时如何正确传递参数
用vb.net调用windows API时如果需要传递参数,则有可能会发生实参和形参宽度不匹配的问题,这时就需要用到MarshalAsAttribute类进行封送处理。示例如下:
Imports System.Runtime.InteropServices
Public Class Form1
Public Declare Function HidD_GetHidGuid Lib“hid.dll”_(ByRef HidGuid As GUID)As Long
Declare Function GetDC Lib "user32" Alias "GetDC" (<MarshalAs(UnmanagedType.U4)> ByVal hwnd As UInt32) As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = Me.Handle
Label2.Text = GetDC(Me.Handle)
End Sub
End Class