在VB中怎么声明和调用DLL中的二级指针
在VB中如何声明和调用DLL中的二级指针?
在VB中如何声明和调用DLL中的二级指针?
/////////////////////////////////////////////////////////////////////////////
RFComm32.dll
void __stdcall SetRecDataProc(void ** Proc)
参数入口:
Proc:指向数据接收函数的指针的指针(二级指针),其函数据参数列表如下所示:
void __stdcall (*RecItemProc)(double Force,double Displacement,double Extend);
Force指力值,Displacement指位移,Extend指变形。
返回值:无返回值。
函数功能:设置一个回调函数,当接收到试验机的数据时,调用此函数,传送力值、位移与变形给客户程序。
////////////////////////////////////////////////////////////////////////////////
我需要用VB调用DLL取得 Force ,请各位大虾帮忙,万分感谢!
------解决方案--------------------
标准模块中声明如下:
Public Declare Sub SetRecDataProc Lib "RFComm32.dll" (ByRef lpProc As Long)
Public Declare Sub RecItemProc Lib "RFComm32.dll" (ByVal Force As Double, ByVal Displacement As Double, ByVal Extend As Double)
调用方法如下:
Call SetRecDataProc(AddressOf RecItemProc)
不知是否可行,能否取得相关的值。
------解决方案--------------------
我觉得.....既然是回调,则是DLL里调用传入的函数.
那么RecItemProc应该是外部的函数,类似SetTimer的回调一样,Public Declare Sub RecItemProc Lib "RFComm32.dll这一个声明不需要.
如果是这样,则试试如下方案:
在VB中如何声明和调用DLL中的二级指针?
/////////////////////////////////////////////////////////////////////////////
RFComm32.dll
void __stdcall SetRecDataProc(void ** Proc)
参数入口:
Proc:指向数据接收函数的指针的指针(二级指针),其函数据参数列表如下所示:
void __stdcall (*RecItemProc)(double Force,double Displacement,double Extend);
Force指力值,Displacement指位移,Extend指变形。
返回值:无返回值。
函数功能:设置一个回调函数,当接收到试验机的数据时,调用此函数,传送力值、位移与变形给客户程序。
////////////////////////////////////////////////////////////////////////////////
我需要用VB调用DLL取得 Force ,请各位大虾帮忙,万分感谢!
------解决方案--------------------
标准模块中声明如下:
Public Declare Sub SetRecDataProc Lib "RFComm32.dll" (ByRef lpProc As Long)
Public Declare Sub RecItemProc Lib "RFComm32.dll" (ByVal Force As Double, ByVal Displacement As Double, ByVal Extend As Double)
调用方法如下:
Call SetRecDataProc(AddressOf RecItemProc)
不知是否可行,能否取得相关的值。
------解决方案--------------------
我觉得.....既然是回调,则是DLL里调用传入的函数.
那么RecItemProc应该是外部的函数,类似SetTimer的回调一样,Public Declare Sub RecItemProc Lib "RFComm32.dll这一个声明不需要.
如果是这样,则试试如下方案:
- VB code
'标准模块内 public sub RecItemProc(ByVal Force As Double, ByVal Displacement As Double, ByVal Extend As Double) debug.print Force, Displacement , Extend end sub