vb 如何处理void * 类型

zhouwenjing2030 2009-01-08 05:18:57
C++编写的DLL文件,我想用VB调用,但是其中有一个函数,其原型为:
extern "C"HANDLE PASCAL EXPORT UssdLogin(char szAccountName[],char szPassword[], int *pnErrorCode, BOOL fAutoConnect,DWORD dwTimeOut);

C语言头文件声明如下:
void * PASCAL EXPORT UssdLogin(char szAccountName[],char szPassword[],int *pnErrorCode,int fAutoConnect,unsigned long dwTimeOut);

函数返回值
一个登录实例句柄

请问如何将其转为VB的声明。
...全文
275 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
VirtualDesktop 2009-01-17
  • 打赏
  • 举报
回复
返回那void*你用long存储之后还要调用CopyMemory拷贝出来
lyserver 2009-01-10
  • 打赏
  • 举报
回复
void *是一个无类型指针,C语言里的指针只与操作平台有关,如32位的XP,指针长度为4个字节,即VB的LONG,在C++里,有一种比较特殊的指针,即类指针,由于存在虚类,故类指针可能大于32位。因此,如果不考虑类指针,void *、char *、int *等,其实质都一样,都是32位,即俺们常说的4G内存地址,都可以声明为ByVal xx As Long,它们的区别只是用于编译器的查错处理,在完成声明后,再使用CopyMemory API实现指针内容的读写就可以了。
shanxi668 2009-01-09
  • 打赏
  • 举报
回复
在C中声明要void _stdcall EXPORT UssdLogin(char szAccountName[],char szPassword[],int *pnErrorCode,int fAutoConnect,unsigned long dwTimeOut);
这样VB才可以调用,
VB模块中声明
Declare Function UssdLogin Lib "YourDLL.dll" (ByVal lPszAccountName As byte, ByVal lPszPassword As byte, ByRef pnErrorCode As Long, ByVal fAutoConnect As Long, ByVal dwTimeOut As Integer) as long
VB调用
dim st as long
st=UssdLogin(你的参数)
如里有返回值用Function,没有返回值用Sub
xrongzhen 2009-01-09
  • 打赏
  • 举报
回复
有返回值,肯定不是Sub了,还是问问1楼僵哥吧
zhouwenjing2030 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chenjl1031 的回复:]
假设你的DLL名字为YourDLL.DLL:


VB codePrivate Declare Sub UssdLogin Lib "YourDLL.dll" (ByVal lPszAccountName As String, ByVal lPszPassword As String, ByRef pnErrorCode As Long, ByVal fAutoConnect As Long, ByVal dwTimeOut As Long)
[/Quote]

兄弟这样不行的!因为函数返回了一个对象的句柄
zhouwenjing2030 2009-01-09
  • 打赏
  • 举报
回复
啊,那就是搞不定了!是吧!
东方之珠 2009-01-08
  • 打赏
  • 举报
回复
假设你的DLL名字为YourDLL.DLL:

Private Declare Sub UssdLogin Lib "YourDLL.dll" (ByVal lPszAccountName As String, ByVal lPszPassword As String, ByRef pnErrorCode As Long, ByVal fAutoConnect As Long, ByVal dwTimeOut As Long)
僵哥 2009-01-08
  • 打赏
  • 举报
回复
void *从类型兼容上可以定义成Long

Pascal调用方式的DLL,在VB当中无法使用.

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧