首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

真心求指导:vb传递结构体 给dll有关问题 如题

2012-02-03 
真心求指导:vb传递结构体 给dll问题 如题vc代码typedef struct tagFS{LONG ldouble d}BOOL __stdcall F

真心求指导:vb传递结构体 给dll问题 如题

vc代码
typedef struct tagFS
{
LONG l;
double d;
};

BOOL __stdcall FSME_FS(tagFS* pTagFs)
{
FILE* f;
f=fopen("D:/out1.txt","w");
fprintf(f,"%s%.17g\n","d:",pTagFs->d);
fprintf(f,"%s%d\n","l:",pTagFs->l);
fclose(f);
return TRUE;
}

vb代码
Private Type tagFS
  l As Long
  d As Double
End Type
Private Declare Function FSME_FS Lib "FSMobileExchange.dll" (ByRef pFS As tagFS) As Boolean

Dim bRet As Boolean
Dim pFS As tagFS
pFS.d = 22.22
pFS.l = 2222

bRet = FSME_FS(pFS)

结果错误:
d:5.3225454133869018e-315
l:2222


[解决办法]

估计是对齐问题。试试:

typedef struct tagFS
{
LONG l;
LONG reserved;
double d;
};

Private Type tagFS
l As Long
reserved As Long
d As Double
End Type

热点排行