VB.NET Dllimport相关特点分析

开发 后端
VB.NET Dllimport的应用可以帮助我们带来非常大的作用。在这里,我们先从其特有的性质开始分析,来详细了解其中的应用技巧。

VB.NET编程语言为广大开发人员带来了非常大的好处。我们今天就可以通过VB.NET Dllimport特点的介绍来进一步加深对这款语言特点的认知。我们可以使用Declare语句调用外部DLL中的过程。但VB.NET给我们提供了另外一种更加先进的----- Dllimport特性。

如:

 

  1. Imports System.Runtime.InteropServices   
  2. < DllImport("user32")> _   
  3. Function Findwindow()Function 
    Findwindow(ByVal lpClassName As 
    String, ByVal lpWindowName As 
    String) As Integer   
  4. End Function  

  1. < DllImport("user32")> _   
  2. Function MoveWindow()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   
  3. End Function   
  4. Sub Test()Sub Test()   
  5. Dim hWnd As Integer = 
    Findwindow(Nothing, 
    "Untitled-Nodepad")   
  6. If hWnd < > 0 Then MoveWindow
    (hWnd, 0, 0, 600, 300, 1)   
  7. End Sub  

 


这样就可以不任何代码实现便可以调用外部的Dll,即使我们改变方法名为FindwindowA,也可以顺利的实现调用,因为使用Dllimport特性编译器可以自动追踪实际的过程以及方法! #t#

另外,VB.NET Dllimport特性海支持几种可选的参数,来精确定义调用外部过程的方式,以及外部过程的返回值方式.

CharSet 参数:用于说明字符串传递给外部过程的方式,可以是CharSet.Ansi(默认),CharSet.Unicode.CharSet.Auto.

 

ExactSpelling参数:用于指定方法名是否和DLL中的名称完全一致,默认值为True.

 

EntryPoint参数:用于指定DLL中的实际函数名称.

 

CallingConvention参数:为入口点指定调用的约定,值有WinApi(默认 值),CDecl,FastCallStdCall和ThisCall.

 

SetLastError参数:判断被调用函数是否设置了最近一次Win32错误代码,如果设置为True 则可以通过Err.LastDllError方法或Marshal.GetLastWin32Error方法 读取这些代码.

 

PreServeSig参数:为一个Boolean值,如果为True ,则将告诉编译器,方法不应被转换为一 个返回HRESULT值函数.

 

 

下面使用VB.NET Dllimport特性来调用myFunction.dll中的名为friend(friend为vb保留名称)的方法.Dllimport特性带有Unicode字符串,并影响Win32错误代码:

 

 

  1. < DllImport("myFunction.dll", 
    EntryPoint:="Friend"CharSet
    CharSet:=CharSet.Unicode, 
    SetLastError:=True)> _   
  2. Function MakeFriends(ByVal sl 
    As String, ByVal s2 As String) 
    As Integer   
  3. End Function  

 

 VB.NET Dllimport的特性就为大家介绍到这里。

责任编辑:曹凯 来源: CSDN
相关推荐

2010-01-15 18:30:50

VB.NET Dlli

2010-01-12 18:35:43

VB.NET Stru

2010-01-18 18:14:37

VB.NET语言特点

2010-01-14 18:14:22

VB.NET开发特点

2010-01-07 17:18:19

VB.NET cstr

2009-11-02 17:12:01

VB和VB.NET

2010-01-19 17:26:37

VB.NET创建过程

2010-01-13 17:16:37

VB.NET冒号

2010-01-11 15:01:55

VB.NET冒泡排序

2010-01-15 13:52:42

VB.NET属性设置

2009-10-28 10:04:53

VB.NET XmlW

2010-01-15 15:39:14

VB.NET Sub过

2009-10-09 17:40:38

VB.Net问题集

2009-11-02 15:57:36

VB.NET WEB

2009-10-28 14:34:44

VB.NET Tree

2010-01-19 15:08:18

VB.NET对象成员

2010-01-13 18:09:09

VB.NET动态生成代

2010-01-08 14:07:47

VB.NET窗体传值

2010-01-08 17:00:22

VB.NET变量和常数

2010-01-14 17:27:17

VB.NET坐标系统
点赞
收藏

51CTO技术栈公众号