社区
语言基础/算法/系统设计
帖子详情
关于PChar中存在#0 的问题
bluepph
2019-01-12 09:02:04
#0一般做为结束符,但是最近要调用一个C的动态库。传的值中间就存在#0。估计是这个原因导致调用动态库一直报错。
大家遇到这个问题一般如何解决的?
...全文
897
5
打赏
收藏
关于PChar中存在#0 的问题
#0一般做为结束符,但是最近要调用一个C的动态库。传的值中间就存在#0。估计是这个原因导致调用动态库一直报错。 大家遇到这个问题一般如何解决的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
虎子8
2019-01-29
打赏
举报
回复
换个类型或者 继续用pchar把内容base64一下
sazhufa
2019-01-14
打赏
举报
回复
一定要先搞清楚动态库如何使用传入参数。
如果只有一个单纯的字符指针参数, 那么遇到#0就中止很正常。
解决方法是: 先确定dll导出函数的定义,然后review代码看看有没有调用问题(参数个数、类型、顺序 三个方面)
doloopcn
2019-01-13
打赏
举报
回复
应该是你的调用方法有问题
DELPHI调用C一般都可能通过BUFF,你的程序在读BUFF的时候读的字节数不对,就有可能把#0读进来了
试试通过String数组解决:
var S:AnsiString;
...
Result:='';
for i:=1 to Length(S) do
begin
if Ord(S[i])<>0 then
Result:=Result+S[i]
else
Break;
end;
日立奔腾浪潮微软松下联想
2019-01-13
打赏
举报
回复
只能说你的参数传入就是有问题的...
BlueStorm
2019-01-12
打赏
举报
回复
可以改为传指针,例如: @str[1]
pc
har
怎么用c语言定义,delphi
中
pc
har
、c
har
、string的定义与区别
本文详细介绍了Delphi
中
PC
har
和String类型的区别与用途。
PC
har
是一个指向以Null结尾的字符数组的指针,而String是字符数组,也以#0结尾。
PC
har
常用于与C/C++接口,例如Windows API,可以进行类似数组的操作,但不提供边界检查。在转换方面,长字符串到
PC
har
的转换需要注意引用计数、数据拷贝和长度信息。文章还提供了示例代码展示如何在两者之间进行转换和操作。
Delphi字符串转换避坑指南:C
har
、
PC
har
、String互转的5个常见错误
本文深入剖析Delphi
中
C
har
、
PC
har
与String互转的5类高危错误:内存管理失配(如
PC
har
(String)悬垂指针、StrAlloc/StrDispose未配对)、空终止符#0缺失或缓冲区计算错误、String(1-based)与C
har
数组(0-based)索引越界、Ansi/Unicode编码混淆(PAnsiC
har
/PWideC
har
误用及字节/字符长度误判)、以及
PC
har
修改引发的写时复制副作用。强调Windows API交互场景下的安全实践。
C
har
Pc
har
String的区别
本文详细介绍了
PC
har
和String两种数据类型的定义、特点及其转换方法。
PC
har
是一种指向字符的指针类型,适用于与C/C++编写的DLL交互等场景;而String则是Delphi
中
的字符数组类型。文章还提供了实例演示如何进行类型转换。
string 与
PC
har
博客介绍了Delphi
中
长字符串(String)转换到
PC
har
不是自动的,
存在
转换
问题
。指出长字符串是引用计数的,赋值是数据拷贝且包含长度;
PC
har
是指向数据的指针,简单空止符结尾。还给出了相关代码示例说明转换时需注意的生存期等
问题
。
delphi
中
pc
har
、c
har
、string的定义与区别
本文详细解析了
PC
har
和String在Delphi
中
的不同特性,包括存储方式、使用场景和相互转换的方法。
PC
har
是一种指向以Null结尾的字符数组的指针,而String是字符数组,两者在长字符串处理、内存分配和边界检查上
存在
显著差异。
语言基础/算法/系统设计
16,741
社区成员
33,233
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章