extern "C"__declspec(dllexport) int __stdcall 函数名(void) 例子中是这样的
dll声明函数原型int 函数名()
Public Declare Function 函数名 Lib "文件名.dll" () As Long
Dim hDLL As Long Dim FunAdd As Long hDLL = LoadLibrary(App.Path + "\库文件.dll") FunAdd = GetProcAddress(hDLL, "函数名")进行到这里了再往下不知怎么搞了,请多发表意见
Declare Function 函数名 Lib "绝对路径\文件名.dll" () As Long
谁能帮解释一下以下代码 dim lCMDFunc(50) as long '假设有50个网络命令lCMDFunc(1)=AddressOf logonbbs'处理一号网络命令函数地址 lCMDFunc(2)=AddressOf exitbbs' 处理二号网络命令函数地址 lCMDFunc(n)=AddressOf xxxxxx' 处理N 号网络命令函数地址'把50个命令的地址放到数组里面
比如 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)
例子中是这样的
Dim FunAdd As Long
hDLL = LoadLibrary(App.Path + "\库文件.dll")
FunAdd = GetProcAddress(hDLL, "函数名")进行到这里了再往下不知怎么搞了,请多发表意见
dim lCMDFunc(50) as long '假设有50个网络命令lCMDFunc(1)=AddressOf logonbbs'处理一号网络命令函数地址
lCMDFunc(2)=AddressOf exitbbs' 处理二号网络命令函数地址
lCMDFunc(n)=AddressOf xxxxxx' 处理N 号网络命令函数地址'把50个命令的地址放到数组里面
需要指针调用函数
VB是不直接支持的
如果想指针调用需要处理一下
比如使用CreateRemoteThread启动地址执行函数
或者使用其他相关能更改EIP的函数等等都可以如果静态调用出现无法找到DLL的提示那是由于VC工程导出问题,你可以使用.def文件导出这样vb使用肯定可以的
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)
VOID WINAPI mp110180_0001(MPSCAN MpScan,MPEVNINFO mpVenInfo,LPCSTR lpIniFile)