Public Declare Function GetProductName Lib "DogDll.dll" () As Long
 Public Declare Function GetSoftWare Lib "DogDll.dll" () As Long
Public Declare Function GetSoftTime Lib "DogDll.dll" () As Long
Public Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
 上面是DLL里的函,请问我在VB里怎样调用?我用下面的代码调用
Private Sub Command1_Click()
  Dim tt As Long
  Dim MySnapHandle As Long  tt = LoadLibrary("DogDll.dll")'
  If tt > 0 Then
     tt = GetSoftWare
  End If
 'MySnapHandle = GetProcAddress(tt, GetSoftWare) 'GetProductName
 'MsgBox MySnapHandle
 
End Sub
后出现如下的错误提示:"Bad dll calling convention"

解决方案 »

  1.   

    Public Declare Function GetProductName Lib "DogDll.dll" () As Long
     Public Declare Function GetSoftWare Lib "DogDll.dll" () As Long
    Public Declare Function GetSoftTime Lib "DogDll.dll" () As Long函数的定义已经写好了,还需要多余的API么?直接调用这些函数好了。将 DogDll.dll 放到 System32 目录,或者环境变量 PATH 所指到的路径下面,就可以了。--------
    两个帖子都回了。  
      

  2.   

    不用那个LoadLibrary加载吗?但是还是提示错误:"Bad dll calling convention"
      

  3.   

    delphi中的返回值是INT型的我VB中用什么型的
      

  4.   

    delphi的int如果是32位的,vb就用Long,16位的vb就用integer,vb没有64位长整型