如何使用字符串参数在Delphi中调用C DLL?

weixin_38049770 2019-09-12 01:47:59
我的Delphi应用程序从一个C DLL调用一个函数,该函数应该返回这样的字符串. C DLL __declspec( dllexport ) void sample(char* str1, char* str2) { strcpy(str1, "123"); strcpy(str2, "abc"); } 德尔福 procedure sample(Str1, Str2: pchar); cdecl; external 'cpp.dll'; var buf1 : Pchar; buf2 : Pchar; begin sample(@buf1, @buf2); //display buf1 and buf2 //ShowMessage(buf1); //it display random ascii characters end; 这样做的正确方法是什么?
...全文
22 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38053335 2019-09-12
  • 打赏
  • 举报
回复
您需要为要写入的C代码分配内存.例如: var buf1, buf2: array [0..255] of Char; begin sample(buf1, buf2); end; 您还应该重新设计接口以接受缓冲区的长度,从而允许DLL代码避免缓冲区溢出.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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