[英]dcc32 Error Unit1.pas(284): E2010 Incompatible types: 'TNavigateBtn' and 'TNavigateButton'
[英]IDE compiles successfully, but dcc32 writes: Error: E2010 Incompatible types: 'Integer' and 'NativeInt'
Delphi XE2 Update 3 IDE成功编译项目,但dcc32.exe写道:
Embarcadero Delphi for Win32 compiler version 22.0
Copyright (c) 1983,2010 Embarcadero Technologies, Inc.
ehshelprouter.pas(137) Error: E2010 Incompatible types: 'Integer' and 'NativeInt'
ehs_reg.pas(68) Fatal: F2063 Could not compile used unit 'ehshelprouter.pas'
为什么? 第137行是:
Application.OnHelp := OnRouteHelp; // function OnRouteHelp(Command: Word; Data: NativeInt; var CallHelp: Boolean): Boolean;
谢谢您的帮助!
检查有问题的行。 如果它说两个应该兼容的类型是不兼容的,那么就会发生比简单分配更复杂的事情。 如果我不得不猜测,有些东西正在传递函数指针并且API已经改变了。 试着检查那个案子......
您是否仔细检查过您是否未使用命令行编译Win64? (即验证它实际上是被调用的dcc32.exe)。
在这种情况下,NativeInt是64位,这是正常的引发此错误。
另外,你是否尝试使用-B选项进行完整构建 ,如( c:\\program files\\embarcadero\\rad studio\\9.0\\bin\\dcc32.exe -$O- -$W+ --no-config
-B
-Q
...)或使用-M选项进行简单编译 ,如( c:\\program files\\embarcadero\\rad studio\\9.0\\bin\\dcc32.exe -$O- -$W+ --no-config
-M
-Q
。 ..)?
我也会尝试消灭所有dcus,看它是否有帮助。
由于它可以在IDE中运行,因此请尝试捕获“消息”区域中显示的命令行,并在控制台中尝试完全相同的行。
您错误地使用了较旧的dcc32.exe(也许是Delphi XE?)。 检查PATH设置或在编译中提供XE2 dcc32.exe的完整路径。 XE2应显示此版本信息:
Embarcadero Delphi for Win32编译器版本23.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.