吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1405|回复: 6
收起左侧

[求助] 不懂就问,此话何来? 如何对上?

[复制链接]
冥界3大法王 发表于 2023-1-25 23:29
http://www.360doc.com/content/12/1020/16/7662927_242617161.shtml


delphi2010中使用pchar时E2010 Incompatible types:
在网上搜了一个ping函数,用到pchar(string),编译时出现这个错误,其实以前也碰到这个问题:

delphi7版本中的Pcharh函数在delphi2010中使用时,编译时出现错误 :E2010 Incompatible types: 'Char' and 'AnsiChar'

这时可以这样使用:

PAnsiChar(AnsiString(string));

说明:


在 delpin中之前,Char对应的是AnsiChar,PChar对应PAnsiChar,string(未映射成老的ShortString)对应 AnsiString;而在delphi2010里,对应的是WideChar,PChar对应PWideChar,string对应 UnicodeString
UnicodeString是delphi2010中出现的新字符串类型,之前没有对应版本;delphi2010 中的AnsiString也和之前版本的AnsiString类型有差别(多了两个word,一个表示code page,另一个表示element size


但基本上可以一样用,它与UnicodeString使同相同的管理。如果在delphi2010之前用过tntware套件的话,从没有引 用计数的WideString过渡到delphi2010的UnicodeString完全没难度。





让我最生气的就是红字的这几行。
他们是如何版本对上路子的?
画重点,请!谢谢!
经常折腾几轮才成功!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

DEATHTOUCH 发表于 2023-1-26 02:40
因为Delphi 2010之前是没有Unicode的,默认String = AnsiString,Char = AnsiChar,然后Delphi 2010之后引入了Unicode,然而实际上这个Unicode指的可能是UCS-2,不确定是不是UTF-16LE。
当然实际上Delphi这个做法并不怎么样,远不如直接引入UTF-8来的实在,毕竟都2010年了,不是微软开发NT的那个时代(没有UTF-8)。
不过这样也有一个好处,就是支持多语言什么的更加方便,而且界面显示和系统无关,不然按照Delphi7的样子你中文系统运行正常的跑别的系统就乱码。
回到Delphi2010,其实它的改动挺大的,但是那个时候已经太晚了,早就不是他的时代了。
当然隔壁Free Pascal就默认用的AnsiString,但是编码方式是随源代码文件的,用UTF-8就是UTF-8,而Lazarus内部是完全的UTF-8。还有知名框架如mORMot也是用UTF-8。

免费评分

参与人数 3吾爱币 +1 热心值 +3 收起 理由
sheepxiaoen + 1 用心讨论,共获提升!
冥界3大法王 + 1 用心讨论,共获提升!
laoda1228 + 1 + 1 虽然看不懂,但是觉得很牛逼!!!

查看全部评分

WZL1188888 发表于 2023-1-26 08:16
 楼主| 冥界3大法王 发表于 2023-1-26 09:21
@DEATHTOUCH  我感觉应该是 UTF-16LE
为啥呢?因为那个TotalCommander(众所周知就是Delphi编译的。。。此类知名软件法王姥爷不打草稿说出几百个来)
当使用导出选中文件列表后,输出的TXT的编码就是那个的。
而我自制的。。就没有任何导入的效果。
DEATHTOUCH 发表于 2023-1-26 21:08
冥界3大法王 发表于 2023-1-26 09:21
@DEATHTOUCH  我感觉应该是 UTF-16LE
为啥呢?因为那个TotalCommander(众所周知就是Delphi编译的。。。此 ...

TotalCommander的32位版是用Delphi 2的编译器编译的,64位是用10多年前的Lazarus和free pascal搞的,这个是作者自己说的,至少9.5的版本是这样的,我用die查壳也可以确认。
所以TC肯定是自己实现了各种编码包括utf8和utf16这类来搞的。
cn2jp 发表于 2023-1-26 21:11
哎我也不懂呀
mdim156 发表于 2023-1-26 21:41
学习到了。理解楼主心情
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 10:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表