2011-12-22 11 views
6

Delphi XE2 Update 3 IDE compila il progetto con successo, ma DCC32.exe scrive:IDE compilato correttamente, ma dcc32 scrive: Errore: E2010 tipi incompatibili: 'Integer' e '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' 

Perché? La linea 137 è:

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

Grazie per l'aiuto!

+0

Che cosa significa il codice intorno alla linea 137 di ehshelprouter.pas in realtà assomiglia? –

+0

Mostra il codice !! Scommetto che TControl.Tag è coinvolto. –

risposta

1

Stai utilizzando un vecchio dcc32.exe per errore (Delphi XE forse?). Verificare le impostazioni PATH o fornire il percorso completo per XE2 dcc32.exe nella compilation. XE2 dovrebbe visualizzare queste informazioni Versione:

Embarcadero Delphi for Win32 compiler version 23.0

+0

Ville Krumlinde, grazie! :) – Dmitry

1

Hai ricontrollato che non stai compilando per Win64 con la riga di comando? (ad esempio, verificare che in realtà sia chiamato dcc32.exe).
In questo caso NativeInt è 64 bit e sarebbe normale sollevare questo errore.

Inoltre, stai cercando di fare un generazione completa utilizzando l'opzione -B come (c:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config-B-Q ...) o semplice compilazione con l'opzione -M come (c:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config-M-Q ...)?

Vorrei anche provare a cancellare tutti i dcus per vedere se aiuta.

E poiché funziona dall'IDE, provare a catturare la riga di comando mostrata nell'area Messaggi e provare quella stessa riga in una console.

+0

Come disattivare 64 bit in dcc32.exe? – Dmitry

+0

Aggiornato la mia risposta. Dcc32.exe dovrebbe rilasciare solo il codice a 32 bit, ma è davvero il dcc32.exe previsto/buono? –

3

Controllare la riga in questione. Se si dice che due tipi che dovrebbero essere compatibili sono incompatibili, allora c'è qualcosa di più complicato di un semplice compito in corso. Se dovessi indovinare, qualcosa sta passando un puntatore a funzione e l'API è cambiata. Prova a verificare per quel caso ...

Problemi correlati