VB调用DLL过程中的内存对齐问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 23:41:59
用VC开发了一个DLL库,主要用于通信接收数据,主要提供函数形如
ExtractXXX(),其返回值为自定义的结构。
现在想用VB调用这个DLL库,对VB工程中将用到的结构和DLL接口函数做了声明,但是程序调用DLL接口运行时得到结果不对。
后来进行测试,发现VB中定义的结构长度与DLL中的结构长度不一致,我想应该是产生问题的原因。

PS:我不懂VB。另外DLL是8字节对齐的,定义的结构主要由定长的字符串成员组成。

C-Style ----- VB-Style
BYTE -----长度为1的字符串:string*1
16位整数------Integer
32位整数 ------Long
字符数组(定长)--定长字符串
FARPROC(函数指针--Long, 事实上VB不直接支持函数指针:)
句柄---------Integer
LPSTR(C字符串)-----Long
数值数组 -----相应的数值数组
结构指针-----Long
Single或Double----- Single或Double