调用外部函数取到的字符串是乱的,该如何处理?

kmfangxun 2007-11-14 06:23:32

调用dll的函数:bool getbill(char* name,char *address,int* billtype ,long lparam )

pb外部函数声明:
function boolean getbill(ref string name,ref string address,ref int billtype,ulong lparam)

//在窗口的other事件中调用

if message.number=74 then

string name
string address
int billtype

getbill(ref name,ref address,ref billtype,lparam)

end if

结果取到的name,address是乱字符串,billtype正确,请问该如何处理才能得到正确的字符串?





...全文
120 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmfangxun 2007-11-15
  • 打赏
  • 举报
回复
to AFIC:

谢谢,还是没解决。


不过我在PB11的帮助中找到了答案,help中说调用外部API取得的字符串可能包含大量的garbage,所以按帮助中说的方法再做如下处理,结果得到了正确的字符串。只是有点不解,这样的工作应该由pb自动处理才对啊。

blob strblob
strblob=blob(address)
callplace=string(strblob,EncodingANSI!)







AFIC 2007-11-15
  • 打赏
  • 举报
回复
pb10以上
function boolean getbill(ref string name,ref string address,ref int billtype,ulong lparam) library "bill.dll " alias for 'getbill;ansi'

pb9以下,先
string name =space(255)
string address =space(255)


kmfangxun 2007-11-14
  • 打赏
  • 举报
回复

pb外部函数声明:
function boolean getbill(ref string name,ref string address,ref int billtype,ulong lparam) library "bill.dll"

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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