我想用VB调用DLL怎么做?

解决方案 »

  1.   

    设要调用的DLL为MyDll.DLL,函数为SetFlat,有一个LONG参数Hwnd,返回值为LONG:'声明Public Declare Function SetFlat Lib "MyDll.DLL" (ByVal Hwnd As Long) As Long'调用(设由Command1的Click事件触发)Private Sub Command1_Click()    SetFlat (Me.hWnd)End Sub
      

  2.   

    声明 DLL 过程
    首先,在模块的声明部分对过程进行声明:Private Declare Function SetWindowText Lib "user32" _
    Alias "SetWindowTextA" (ByVal hwnd As Long, _
    ByVal lpString As String) As Long过程的精确语法定义可以用 API Viewer 应用程序找到,在 Win32api.txt 文件中也可以找到它。如果将 Declare 放在 Form 或者 Class 模块内,那么必须在它的前面加上 Private 关键字。同一个 DLL 过程在一个工程中只需声明一次;然后可以任意调用。详细信息 关于如何声明语句,请参阅本章后面的“声明 DLL 过程”主题。调用 DLL 过程
    在声明了函数之后,调用它的方式与标准的 Visual Basic 函数相同。在下例中,Form Load 事件调用了上面声明的过程。Private Sub Form_Load()
       SetWindowText Form1.hWnd, "Welcome to VB"
    End Sub在运行这段代码时,函数首先使用 hWnd 属性确定要修改标题栏的窗口(Form1.hWnd),然后将标题栏修改为“Welcome to VB”。需要牢记的是:Visual Basic 不能验证传递到 DLL 过程的值是否正确。如果传递了错误的值,那么过程将出错,并可能因此导致 Visual Basic 应用程序停止运行。这样就不得不重新加载和启动应用程序。在测试 DLL 过程时千万要小心,一定要经常地保存自己的工作。注意   极少数 API 调用能够识别缺省的 Variant 数据类型。最好声明具体的变量类型并使用 Option Explicit,这样,API 的可靠性要高得多。