我正在编译MadRes,但错误是:
Checking project dependencies...
Compiling Project1.dproj (Debug configuration)
[DCC Warning] madRes.pas(351): W1057 Implicit string cast from 'AnsiString' to 'string'
[DCC Warning] madRes.pas(351): W1057 Implicit string cast from 'AnsiString' to 'string'
[DCC Error] madRes.pas(519): E2010 Incompatible types: 'Char' and 'AnsiChar'
[DCC Fatal Error] Unit1.pas(7): F2063 Could not compile used unit 'madRes.pas'
Failed
Elapsed time: 00:00:00.6
然后告诉我这部分单位madRes:
if GetVersion and $ 80000000 = 0 then
result: = CreateFileW (fileName, c1, c2, nil, c3, 0, 0)
else result: = CreateFileA (pchar (string (WideString (fileName))), c1, c2, nil, c3, 0, 0);
end;
代码是一个程序,我发现exe运行顺利,但问题是当我想从我的计算机编译时。
有人可以帮助我吗?答案 0 :(得分:2)
您应该下载并安装当前版本的madCollection:http://madshi.net/
早已为unicode支持进行了更新 - 有问题的行现在看起来像这样:
result := CreateFileA(PAnsiChar(AnsiString(UnicodeString(fileName))),
c1, c2, nil, c3, 0, 0);
Delphi的默认字符串(PChar等)在D2009中从Ansi更改为2字节unicode;这引入了一个需要明确的Ansi特定实现(PAnsiChar,AnsiString)的兼容性。如果您有兴趣阅读更多内容,我认为EDN上的这篇文章可能是一个好的开始: