vb调用vc写的dll简单问题

2025-02-27 20:51:33
推荐回答(3个)
回答1:

int是多少?

至少楼上的数据类型是弄错了。
VBVC都把参数类型和返回类型换成long就OK了,
错的主要是在于VC定义的函数的参数返回值都是32位长度的整形值,你在VB里定义的却是16位整形值。

当然是在32位操作系统下,就OK了

---------------------------------------

怎么还没给分啊,
看在50分的份上我再说两句。
int是变长单位,它表示一个计算机字长,计算机发展过程中他变了很多次了。
vb的integer是16位的,而VC的int在32位系统上他是32位的,所以我建议你全换成定长的long,long在VBVC里都是32位长度,换过来就OK啦。
你说的大数应该是返回值问题,因为高16位不确定啊,所以返回的肯定是大数了。

回答2:

int _declspec(dllexport) add(int x,int y){
return (x+y);
}

回答3:

int是多少?

至少楼上的数据类型是弄错了。
VBVC都把参数类型和返回类型换成long就OK了,
错的主要是在于VC定义的函数的参数返回值都是32位长度的整形值,你在VB里定义的却是16位整形值。

当然是在32位操作系统下,就OK了

--------------------------------------- int _declspec(dllexport) add(int x,int y){
return (x+y);
}

怎么还没给分啊,
看在50分的份上我再说两句。
int是变长单位,它表示一个计算机字长,计算机发展过程中他变了很多次了。
vb的integer是16位的,而VC的int在32位系统上他是32位的,所以我建议你全换成定长的long,long在VBVC里都是32位长度,换过来就OK啦。
你说的大数应该是返回值问题,因为高16位不确定啊,所以返回的肯定是大数了。