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

BCB调用VB DLL部份函数无效,求解.解决办法

2013-01-08 
BCB调用VB DLL部份函数无效,求解.本人BCB调用VB写的DLL,调试出现如下问题请大侠帮忙:Project XXX.exe rais

BCB调用VB DLL部份函数无效,求解.
本人BCB调用VB写的DLL,调试出现如下问题请大侠帮忙:
BCB调用VB DLL部份函数无效,求解.解决办法

Project XXX.exe raised exception class EAcessviolation with message 'access violatong at address 00381FA19 in module 'JST320R.DLL',read of address 000000001. Process is stoped.

1.有在工程文件中加入LIB文件.
2.有在.H文件中声明函数原形.
extern "C" __declspec(dllimport) int __stdcall OpenPort(int);
extern "C" __declspec(dllimport) int __stdcall ClosePort(int);
extern "C" __declspec(dllimport) AnsiString __stdcall ReceDataR(int,AnsiString,AnsiString,AnsiString);
3.OpenPort,ClosePort两个函数没有问题,但ReceDatar函数会出现如上错误画面.




[解决办法]
ReceDataR(int,AnsiString,AnsiString,AnsiString);
这里面的数据类型VB与bcb不同
比如int
bcb里int是 VB里的long
AnsiString,你用char×类型参数试一下

[解决办法]
既然是VB写的Dll, 用AnsiString这个类型做参数肯定要出问题. 如果ReceDataR函数原型是string参数的话,在C++Builder中用char *即可.

热点排行