我们可以使用Declare语句调用外部DLL中的过程。但VB.NET给我们提供了另外一种更加先进的----- Dllimport特性。
如:
Imports System.Runtime.InteropServices
<DllImport("user32")> _
Function Findwindow(ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
End Function
<DllImport("user32")> _
Function MoveWindow(ByVal hWnd As String, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal bRepaint As Integer) As Integer
End Function
Sub Test()
Dim hWnd As Integer = Findwindow(Nothing, "Untitled-Nodepad")
If hWnd <> 0 Then MoveWindow(hWnd, 0, 0, 600, 300, 1)
End Sub
这样就可以不任何代码实现便可以调用外部的Dll,即使我们改变方法名为FindwindowA,也可以顺利的实现调用,因为使用Dllimport特性编译器可以自动追踪实际的过程以及方法!
另外,Dllimport特性海支持几种可选的参数,来精确定义调用外部过程的方式,以及外部过程的返回值方式.
!--判断阅读权限-->!--判断是否已经扣点-->
如:
Imports System.Runtime.InteropServices
<DllImport("user32")> _
Function Findwindow(ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
End Function
<DllImport("user32")> _
Function MoveWindow(ByVal hWnd As String, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal bRepaint As Integer) As Integer
End Function
Sub Test()
Dim hWnd As Integer = Findwindow(Nothing, "Untitled-Nodepad")
If hWnd <> 0 Then MoveWindow(hWnd, 0, 0, 600, 300, 1)
End Sub
这样就可以不任何代码实现便可以调用外部的Dll,即使我们改变方法名为FindwindowA,也可以顺利的实现调用,因为使用Dllimport特性编译器可以自动追踪实际的过程以及方法!
另外,Dllimport特性海支持几种可选的参数,来精确定义调用外部过程的方式,以及外部过程的返回值方式.
