【发布时间】:2010-12-01 17:23:14
【问题描述】:
我需要修补 Classes.pas 中的一个方法
(TReader.ReadString - 我想强制它使用指定的代码页,而不是系统默认值)。
如果我将 Classes.pas 复制到我的项目中,我最终将不得不重新构建整个 VCL。有没有(简单的)方法可以在运行时修补方法?
【问题讨论】:
-
您确定没有基于配置的方法来满足您的需求吗?修补 classes.pas 真的应该是你最后的手段......
-
是的,有一种基于配置的方法 - 更改整个系统的区域设置!问题是 D2009 看起来并不完全是 Unicode(我认为 DFM 仍然包含 AnsiStrings)。我希望能够在一台机器上加载不同的资源 dll(英文/日文/中文/韩文), 不更改系统区域设置
-
据我所知,DFM 被处理为 UTF8。
-
成功修补 TReader.ReadString 后,我发现 DFM 中有一些 AnsiStrings,但不是那些导致我问题的...
-
巴里,感谢您的回答/cmets。仍然没有弄清楚我们的本地化内容到底出了什么问题,但不知何故,代码页 932 (SHIFT-JIS) 文本被写入了 .dfn 文件而不是 UTF8。整个修补工作已经变成了一种不必要的转移……
标签: delphi delphi-2009