我正在将一个非常旧的( Delphi )应用程序升级到最新的10+ XE。有很多错误,我不断得到这样的
Incompatible types: 'WideChar' and 'AnsiChar'我只是将字符转换为正确的类型: ex。AWideChar = WideChar(fncReturnsChar);
这会造成问题吗?
发布于 2011-02-15 05:12:57
你可能会遇到一些问题。这是Marco Cant?的一份关于Delphi中Unicode的白皮书。
http://edn.embarcadero.com/article/38980
发布于 2012-07-18 18:21:19
var
Initials: String[10];
FullName: String;
begin
Initials[1] := FullName[1]; // Error here after Delphi 2009
end;问题是,在后来的Delphi版本中,String10是AnsiString的类型。在上面的代码中,您将为ANSI字符分配一个Unicode字符。
解决方案是一个简单的类型转换:
Initials[1] := AnsiChar(FullName[1]);请参考Mikael Eriksson答案中推荐的文档。这是至关重要的。
发布于 2013-10-10 14:12:01
var
C : Char;
AC : AnsiChar;
begin
AC := '1';
// C := AC; Delphi does not know how to convert ANSI to Unicode without a codepage
C := String(AC)[1]; // Any way we can do that by default ANSI decoder
end.https://stackoverflow.com/questions/4997142
复制相似问题