【发布时间】:2012-03-30 04:27:03
【问题描述】:
我正在尝试将一些旧的 Delphi 7 代码转换为 Delphi 2010
function AnsiToDOS(S: String): String;
begin
SetLength(Result, Length(S));
if S <> '' then begin
CharToOEM(PChar(S), PChar(Result));
end;
end;
我在该行收到“不兼容的类型:'Char' 和 'AnsiChar'”错误:
CharToOEM(外部 User32 函数)在
中找到Windows.pas 单位
我能否以某种方式重写此 AnsiToDos 函数,还是需要编写自己的 CharToOEM 例程?
【问题讨论】:
-
函数CharToOEM 是Banned 用于微软而不是使用WideCharToMultiByte。
-
@RRUZ 很多被禁用的功能是完全合理使用的。
-
@DavidHeffernan 我更喜欢遵循 MSDN 的建议(如果可能的话)。
-
@RRUZ 我原则上同意,但这些特别的建议值得商榷,并且有大量的反对意见。
-
@RRUZ,看注释:“经典的C运行时,“n”个函数被禁止,因为它们很难正确调用。作者在调用这些函数时看到了很多错误” 。我想说的是经典的“枪杀人”。
标签: delphi delphi-7 delphi-2010