求助,pb调用delphi编写的动态库,通过参数返回的字符串乱码

liq2003 2021-03-13 02:22:23
delphi编写的函数:
//定义供外部调用的函数StrAddStr
function StrAddStr(inpustr:PChar ;var OutPutstr:PChar):integer;stdcall;
var
str1:string;
begin
str1:=inpustr;
OutPutstr:=Pchar(str1 + ' + ' + str1);
showmessage(OutPutstr);
result:=0;
end;

vb调用正常:
Public Declare Function StrAddStr Lib "Mydll.dll" (ByVal str1 As String, ByRef str2 As String) As Integer

Dim str1, str2 As String

str1 = "A1abx"
StrAddStr str1, str2
MsgBox str2

pb调用异常:
function int StrAddStr(string str1, ref string str2) library "Mydll.dll"

string ls_1 = "Axc"
string ls_2 = space(20)

StrAddStr(ls_1, ls_2)
messagebox(string(len(ls_2)), ls_2)
...全文
447 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liq2003 2021-03-15
  • 打赏
  • 举报
回复
PB调用,代码如下:
liq2003 2021-03-15
  • 打赏
  • 举报
回复
想起了以前的一件事,试了下。Ok了。
liq2003 2021-03-15
  • 打赏
  • 举报
回复
string ls_1 = "Axc好吗" long ll_addr //这里传递long型,返回字符串地址 StrAddStr(ls_1, ll_addr) //通过地址获取字符串内容 messagebox("我是PB", string(ll_addr, "address"))

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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