老版程序是用delphi7写的,升级到了delphi XE2后,调用API的部分全部不能使用,检查原因,发现delphi2009开始,已经全部把String升级为UnicodeString了,可我现在还不想将程序升级到Unicode,于是查找了一下embarcadero的论坛和网站。总结如下:
1)将程序中所有的String,改为AnsiString,所有的Char,改为AnsiChar。
当然,还需要一个过程一个过程的调试和测试。有一个澳大利亚的程序员,甚至编写了一个软件,主要将XE2下的默认Unicode编码转换成老版模式,而且支持文件、文件夹或目录树模式。软件下载链接如下:http://www.innovasolutions.com.au/delphistuf/AnsiStringCodeConverter.ZIP
软件说明如下:
http://www.innovasolutions.com.au/delphistuf/ADUGStringToAnsiStringConv.htm
主要做的更改包括:
将String更换为AnsiString;将Char更换为AnsiChar;将PChar更换为PAnsiChar;… …
对了,使用前建议备份源代码,否则……
2)请参考官方提供的一篇delphi Unicode迁移说明文档。
http://www.embarcadero.com/images/dm/technical-papers/delphi-unicode-migration.pdf
文章评论