函数命名,C#中byte在pb中的转化

qq_24650787 2016-07-05 02:22:54
C# 实例
函数
[DllImport("termb.dll", EntryPoint = "GetFPDate", CharSet = CharSet.Ansi, SetLastError = false, CallingConvention = CallingConvention.StdCall)]
public static extern int GetFPDate(ref byte strTmp, ref int strLen);

byte[] ICFeatureData;
ICFeatureData = new byte[1024];
GetFPDate(ref ICFeatureData[0], ref length);

这些代码在pb中如何实现。以下是我的转换
Function Integer GetFPDate(Ref String strTmp,Ref Long strLen) Library 'termb.dll' Alias For "GetFPDate;Ansi"
string ls_str
Long Length
ls_str = Space(1024)
GetFPDateCS(ls_str ,Length)

获取值不正确,去大神解决
...全文
2034 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_24650787 2016-07-08
  • 打赏
  • 举报
回复
引用 2 楼 lzp_lrp 的回复:
PB中也有Byte,你可以试试这个 或者用blob
Function Integer GetFPDate(Ref blob strTmp,Ref Long strLen) Library 'termb.dll' Alias For "GetFPDate;Ansi" Function Integer GetFPDate(Ref byte strTmp,Ref Long strLen) Library 'termb.dll' Alias For "GetFPDate;Ansi" 执行的时候都会报错的
qq_24650787 2016-07-08
  • 打赏
  • 举报
回复
引用 3 楼 nocry115 的回复:
byte[1024] 太大了,PB没有byte类型(二进制),这应该是1024位二进制 一般一个地址FFFF是16位二进制 建议找到类似的dll接口函数,能够分段读取的(假设为GetFPDateCStmp),比如每次读16位二进制 //定义一个数值(10进制) long ll_ICFeatureDatatmp ll_ICFeatureDatatmp = 65535 //必须初始化 GetFPDateCStmp(ll_ICFeatureDatatmp ,Length) 然后通过转换(可能需要转为16进制),循环读取再拼接起来
感谢,pb学习的不深,感觉好复杂。自己想办法解决吧
nocry115 2016-07-07
  • 打赏
  • 举报
回复
byte[1024] 太大了,PB没有byte类型(二进制),这应该是1024位二进制 一般一个地址FFFF是16位二进制 建议找到类似的dll接口函数,能够分段读取的(假设为GetFPDateCStmp),比如每次读16位二进制 //定义一个数值(10进制) long ll_ICFeatureDatatmp ll_ICFeatureDatatmp = 65535 //必须初始化 GetFPDateCStmp(ll_ICFeatureDatatmp ,Length) 然后通过转换(可能需要转为16进制),循环读取再拼接起来
WorldMobile 2016-07-07
  • 打赏
  • 举报
回复
PB中也有Byte,你可以试试这个 或者用blob
qq_24650787 2016-07-06
  • 打赏
  • 举报
回复
怎么没有人碰到过吗?求大神传授经验啊

680

社区成员

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

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