用BCB6调用BCB2010写的动态库,输入参数值无法传入

yuying_jy 2010-07-17 12:23:06
我在写一个Web Server 接口,但不知什么原因,用BCB6写的程序无法运行,总是提示“server error”,于是我就用bcb2010写了一个一样的程序可以成功运行。我想把它写成DLL让在BCB6环境下也可以运行,但是BCB6调用这个DLL时输入参数无法传入,例:dll中函数是这样定义的:extern "C" __declspec(dllexport) bool __stdcall TestInterface(const AnsiString sOrderId,const AnsiString sItemId,const AnsiString sId,TSDOutInfo* sdOutInfo,AnsiString &sSign,AnsiString &sMsg);

bcb6中这样调用TestInterface("abc","efd","123",SDOutInfo,sSign,sMsg);

运行时sOrderId,sItemId,sId三个参数却为空,麻烦哪位高手帮忙指点一下,先谢谢了
...全文
76 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
YeBinYe 2010-07-17
  • 打赏
  • 举报
回复
至于同为CB2010可以使用而6.0调用失败的问题,应该是AnsiString不兼容导致的!毕竟6.0的版本低于2010
YeBinYe 2010-07-17
  • 打赏
  • 举报
回复
DLL中导出函数的参数,最好不要使用String类,可以用char *或wchar_t *之类的传递。
周药师 2010-07-17
  • 打赏
  • 举报
回复
DLL动态库出入口函数参数,不要用AnsiString等类型
用char * 、word dword等
yuying_jy 2010-07-17
  • 打赏
  • 举报
回复
谢谢各位,这个问题已经解决了,改成char *参数可以传入了

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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