2011-12-22 23 views
6

Delphi XE2 Actualización 3 IDE compila el proyecto con éxito, pero DCC32.exe escribe:IDE compila correctamente, pero dcc32 escribe: Error: E2010 tipos incompatibles: 'Integer' y 'NativeInt'

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' 

¿Por qué? La línea 137 es:

Application.OnHelp := OnRouteHelp; // function OnRouteHelp(Command: Word; Data: NativeInt; var CallHelp: Boolean): Boolean; 

¡Gracias por la ayuda!

+0

¿Qué significa el código alrededor de la línea 137 de ehshelprouter.pas realidad parece? –

+0

Muestra el código !! Apuesto a que TControl.Tag está involucrado. –

Respuesta

1

Está utilizando un dcc32.exe anterior por error (Delphi XE ¿quizás?). Verifique su configuración PATH o proporcione la ruta completa a XE2 dcc32.exe en su compilación. XE2 debe mostrar esta información de la versión:

Embarcadero Delphi for Win32 compiler version 23.0

+0

Ville Krumlinde, gracias! :) – Dmitry

1

¿Ha verificado dos veces que no está compilando para Win64 con la línea de comandos? (es decir, verificar que en realidad se llama dcc32.exe).
En ese caso, NativeInt tiene 64bits y sería normal generar este error.

Además, están tratando de hacer un generación completa usando la opción -B como (c:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config-B-Q ...) o sencillo compilar con la opción -M como (c:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config-M-Q ...)?

También trataría de borrar todo el dcus para ver si ayuda.

Y como funciona desde el IDE, intente capturar la línea de comandos que se muestra en el área Mensajes e intente exactamente la misma línea en una consola.

+0

Cómo deshabilitar 64 bit en dcc32.exe? – Dmitry

+0

Actualizado mi respuesta. Se supone que Dcc32.exe solo derrama código de 32 bits, pero ¿es realmente el esperado/bueno dcc32.exe? –

3

Compruebe la línea en cuestión. Si está diciendo que dos tipos que deberían ser compatibles son incompatibles, entonces hay algo más complicado que una simple tarea en marcha. Si tuviera que adivinar, algo está pasando un puntero a la función y la API ha cambiado. Intente buscar ese caso ...

Cuestiones relacionadas