用vb调用dll有个vc的例子,例子头文件中声明了导入函数,在vb中怎么定义导入函数以供调用啊?

解决方案 »

  1.   

    extern "C"__declspec(dllexport) int __stdcall 函数名(void)
    例子中是这样的
      

  2.   

    dll声明函数原型int 函数名()
      

  3.   

    Public Declare Function 函数名 Lib "文件名.dll" () As Long
      

  4.   

    Dim hDLL As Long
    Dim FunAdd As Long
    hDLL = LoadLibrary(App.Path + "\库文件.dll")
    FunAdd = GetProcAddress(hDLL, "函数名")进行到这里了再往下不知怎么搞了,请多发表意见
      

  5.   

    Declare Function 函数名 Lib "绝对路径\文件名.dll" () As Long
      

  6.   

    谁能帮解释一下以下代码
    dim lCMDFunc(50) as long '假设有50个网络命令lCMDFunc(1)=AddressOf  logonbbs'处理一号网络命令函数地址
    lCMDFunc(2)=AddressOf  exitbbs' 处理二号网络命令函数地址
    lCMDFunc(n)=AddressOf  xxxxxx'  处理N 号网络命令函数地址'把50个命令的地址放到数组里面
      

  7.   

    http://dev.csdn.net/article/18/18015.shtm
      

  8.   

    LoadLibrary是动态加载
    需要指针调用函数
    VB是不直接支持的
    如果想指针调用需要处理一下
    比如使用CreateRemoteThread启动地址执行函数
    或者使用其他相关能更改EIP的函数等等都可以如果静态调用出现无法找到DLL的提示那是由于VC工程导出问题,你可以使用.def文件导出这样vb使用肯定可以的
      

  9.   

    楼上的使用.def文件怎么调用啊
      

  10.   

    比如
    Public Declare Function mp110180_0001 Lib "mp110180.dll" (ByVal ScanFunAddress As Long, ByVal VenFunAddress As Long, ByVal lpIniFile As String) As Long
    Public Declare Function mp110180_0002 Lib "mp110180.dll" (ByVal ClearFileFunAddress As Long, ByVal ClearRegFunAddress As Long, VenInfo As Any, ByVal lpIniFile As String) As Long
    Public Declare Function mp110180_0003 Lib "mp110180.dll" (ByVal GetFileFunAddress As Long, ByVal GetRegFunAddress As Long, VenInfo As Any, ByVal lpIniFile As String) As Long
    Public Declare Sub mp110180_0004 Lib "mp110180.dll" (ByVal ExpandFun As Long)
      

  11.   

    VC声明
    VOID WINAPI mp110180_0001(MPSCAN MpScan,MPEVNINFO mpVenInfo,LPCSTR lpIniFile)