VB调用C语言的DLL数据类型转换及运行调用约定错误
最近在引用C语言DLL的时候遇到问题,由于只给了一些函数说明,所以碰到了一些问题,向大家请教下
所给的函数说明
1、 void* __stdcall New_Object() //返回:创建的新Panel对象的指针
VB--Public Declare Function New_Object Lib "BS7400Ctl" () As Long 声明是否正确?void * 用什么类型来表示?作为返回值、函数参数有什么区别么?
这样声明后,在vb中能返回一个long型值
2、void __stdcall Delete_Object(void *pObject) //释放Panel对象,pObject 就是上面返回的Panel指针
VB--Public Declare Sub Delete_Object Lib "BS7400Ctl" (ByVal pObject As Long)
用上面的long值作为参数时,在IDE中运行时提示:94错误,调用DLL约定错误,但生成EXE后却没有错误提示,是这么回事?
3、DWORD __stdcall OpenReceiver(void* pObject, TRANDATAPROC pTranFunc, LPVOID pPara)
VB--Public Declare Function OpenReceiver Lib "BS7400Ctl" (ByVal pObject As Long, ByVal pTranFunc As Long, ByVal pPara As Long) As Long
参数:pTranFunc --回调函数;pPara -- 回调函数相关的参数指针。
这里的pPara是个什么鬼?vb中怎么声明
请各位不吝赐教,,分可以再谈