unsigned char* 在delphi中是什么类型?

TSolarboy 2014-06-11 05:13:13
动态链接库中有参数为unsigned char * ,请问在Delphi中用什么类型表示?
...全文
1097 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
LastAvengers 2014-06-21
  • 打赏
  • 举报
回复
对了是指针的话就PByte...和楼上说的重复了.
LastAvengers 2014-06-21
  • 打赏
  • 举报
回复
unsigned char * 是 0 - 255 Delphi中的byte 也是.
nm_wyh 2014-06-21
  • 打赏
  • 举报
回复
PByte就可以
hksoobe 2014-06-20
  • 打赏
  • 举报
回复
如果是D7 还是用PByte
金卯刀 2014-06-12
  • 打赏
  • 举报
回复
之所以考虑PByte而不是PChar,对代码的迁移或者delphi版本的升级减少潜在的问题。
xhz8000 2014-06-12
  • 打赏
  • 举报
回复
unsigned char* 前面有无符号,我认为PByte更适合些, 如果函数返回字符缓冲指针,就直接char * 就行了
「已注销」 2014-06-12
  • 打赏
  • 举报
回复
PByte, 毫无疑问
虎子8 2014-06-11
  • 打赏
  • 举报
回复
unsigned char * 用PAnsiChar 其实在C里面 unsigned char就是指byte 0..255 char -127..127 但是呢delphi中 pchar对应的char 0..255 byte也是
pathletboy 2014-06-11
  • 打赏
  • 举报
回复
另外PChar可以索引访问,更接近unsigned char*,当然PChar PByte本质上是没有区别的,都是指针类型,如果你非得纠结PChar在2009版本后是unicode,那么我觉得Pointer更合适。
引用 3 楼 Avan_Lau 的回复:
[quote=引用 2 楼 pathletboy 的回复:] [quote=引用 楼主 TSolarboy 的回复:] 动态链接库中有参数为unsigned char * ,请问在Delphi中用什么类型表示?
PChar[/quote] PByte更合适,PChar在D2009以后意义有很大不同[/quote] 另外PChar可以索引访问,更接近unsigned char*,当然PChar PByte本质上是没有区别的,都是指针类型,如果你非得纠结PChar在2009版本后是unicode,那么我觉得Pointer更合适。
haitao 2014-06-11
  • 打赏
  • 举报
回复
unsigned char就是byte
pathletboy 2014-06-11
  • 打赏
  • 举报
回复
引用 3 楼 Avan_Lau 的回复:
[quote=引用 2 楼 pathletboy 的回复:] [quote=引用 楼主 TSolarboy 的回复:] 动态链接库中有参数为unsigned char * ,请问在Delphi中用什么类型表示?
PChar[/quote] PByte更合适,PChar在D2009以后意义有很大不同[/quote] 没提版本还是默认老的经典版本比较合适,一般unsigned char* 可能是表示字符串或者缓冲区的指针,而PByte不能很好的表示字符串。 比如这个定义
procedure func(x: PChar);
begin

end;
可以直接这样调用
func(PChar('123'));
定义成PByte则不行。
金卯刀 2014-06-11
  • 打赏
  • 举报
回复
引用 2 楼 pathletboy 的回复:
[quote=引用 楼主 TSolarboy 的回复:] 动态链接库中有参数为unsigned char * ,请问在Delphi中用什么类型表示?
PChar[/quote] PByte更合适,PChar在D2009以后意义有很大不同
pathletboy 2014-06-11
  • 打赏
  • 举报
回复
引用 楼主 TSolarboy 的回复:
动态链接库中有参数为unsigned char * ,请问在Delphi中用什么类型表示?
PChar
缘中人 2014-06-11
  • 打赏
  • 举报
回复
是不是BYTE
DELPHI源代码-读卡器开发 #ifndef _EXPORT_FUNC_H_ #define _EXPORT_FUNC_H_ //return successful result #define LIB_SUCCESS 0 //return failed result #define LIB_FAILED 1 #define MAX_RF_BUFFER 1024 /******** 功能:获取动态库版本号 2字节 *******************/ // 返回: 成功返回0 /*********************************************************/ int WINAPI lib_ver(unsigned int *nVer); /******** 功能:DES 算法加密函数 *************************/ // 参数:szOut: 加密结果,长度等于加密数据长度 // szIn: 加密数据 // inlen: 加密数据长度,8字节的整数倍 // key: 密钥 // keylen: 密钥长度,如果大于8字节,是3des,如果小于等于8字节单des.不足补零 // 返回: 成功返回0 /*********************************************************/ int (WINAPI* des_encrypt)(unsigned char *szOut,unsigned char *szIn , unsigned int inlen,unsigned char *key,unsigned int keylen); /******** 功能:DES 算法解密函数 *************************/ // 参数:szOut: 解密结果,长度等于解密数据长度 // szIn: 解密数据 // inlen: 解密数据长度,8字节的整数倍 // key: 密钥 // keylen: 密钥长度,如果大于8字节,是3des,如果小于等于8字节单des.不足补零 // 返回: 成功返回0 /*********************************************************/ int (WINAPI* des_decrypt)(unsigned char *szOut,unsigned char *szIn , unsigned int inlen,unsigned char *key,unsigned int keylen); /******** 功能:初始化串口 *******************************/ // 参数:port:串口号,取值为1~4 // baud:为通讯波特率4800~115200 // 返回:成功则返回0 /*********************************************************/ int WINAPI rf_init_com(int port,long baud);

1,183

社区成员

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

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