hjw957100 2014-05-31 02:51 采纳率: 0%
浏览 3659

PB 调用DLL 返回值为乱码

PB 使用SMS.DLL在PB中调用时,发现返回值为乱码。
推测异常原因可能是: DLL中定义的数据类型与PB数据类型不同造成。

使用DELPHI调用相同的DLL,返回值正常。
//DLL声明
function uint Sms_Connection(string CopyRight,uint Com_Port,uint Com_BaudRate,ref string Mobile_Type,ref string CopyRightToCOM)library "sms.dll" alias for "Sms_Connection;Ansi"

//PB代码

integer li_com,li_rc
string ls_type
string str_copyright
string str_copyrighttocom
ls_type = space(5000)

str_CopyRight='//上海迅赛信息技术有限公司,网址www.xunsai.com//'

if ddlb_com.text = '' or isnull(ddlb_com.text) then
messagebox('','连接不能为空!')
return
end if

li_com = integer(ddlb_com.text)

li_rc = sms_connection(str_copyright,li_com,9600,ls_type,str_copyrighttocom)

if li_rc > 0 then
st_mobile.text = string(ls_type)
messagebox(string(len(trim(ls_type))),trim(ls_type))
messagebox('','连接成功!')
cb_1.enabled = false
cb_2.enabled = true
else
messagebox('','连接失败!')
cb_1.enabled = true
cb_2.enabled = false
end if

  • 写回答

1条回答

  • WorldMobile 2014-11-12 00:49
    关注

    代码没有问题,都赋初值了,可能是dll里的问题,与pb不兼容,建议你用delphi再封装一个dll,在pb里调用,应该就好了

    评论

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建