BCB 调用VC++ dll 传递指针参数的问题

spade24 2011-09-09 02:57:37

VC++ dll h文件内函数
extern "C" __declspec(dllexport) unsigned void __stdcall WINAPI VCFunc(float *fData);


BCB h文件内引用函数:
extern "C" __declspec(dllimport) _stdcall void VCFunc(float *fZero);


BCB cpp文件内事件函数:
void __fastcall TForm1::Button6Click(TObject *Sender)
{
float fData[4096];
VCFunc(fData);
}


如上操作,目的是想通过调用VCFunc函数得到一组fData数据,可结果得到的fData所有数据都是不对的。望能得到指点。
...全文
72 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzbinfo 2011-09-09
  • 打赏
  • 举报
回复
你这个dll内部是怎么操作的??你要是想产生一组float就应该把产生多少个告诉函数。例子

int WINAPI VCFunc(float *fData,int Num)
{
for(int i = 0;i< Num;i++)
{
fData[i]=5.6*i+1;
}
return 0;
}
调用

int (WINAPI *VCFunc)(float*,int);
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HINSTANCE hInsts = LoadLibrary("test.DLL");
VCFunc = (int (WINAPI *)(float*,int ))GetProcAddress(hInsts,"VCFunc");
if(hInsts)
{
float fData[3];
if(VCFunc(fData,3)==0)
{
for(int i=0;i<3;i++)
ShowMessage(fData[i]);
}


}
FreeLibrary(hInsts);
}
spade24 2011-09-09
  • 打赏
  • 举报
回复
有个地方刚才编辑错了:BCB h文件内引用函数中,后面的参数是fData。
这个不是问题所在哦!

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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