2011-12-22 4 views
6

델파이 XE2의 3 IDE는 프로젝트를 성공적으로 컴파일 업데이트,하지만 dcc32.exe 를 기록 :IDE가 성공적으로 컴파일하지만 DCC32 기록 : 오류 : E2010 호환되지 않는 유형 : '정수'와 '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' 

왜? 137 번선은 다음과 같습니다.

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

감사합니다.

+0

ehshelprouter.pas의 137 행 주변 코드는 실제로 어떻게 생겼습니까? –

+0

코드를 보여주세요 !! TControl.Tag가 관련되어있을 것입니다. –

답변

1

실수로 이전 dcc32.exe를 사용하고 있습니다 (아마도 Delphi XE?). PATH 설정을 확인하거나 컴파일에서 XE2 dcc32.exe의 전체 경로를 제공하십시오. XE2는이 버전 정보를 표시해야합니다.

Embarcadero Delphi for Win32 compiler version 23.0

+0

Ville Krumlinde, 고마워! :) – Dmitry

1

명령 줄을 사용하여 Win64 용으로 컴파일하지 않는다고 다시 확인 했습니까? (즉 실제로 호출 된 dcc32.exe인지 확인).
이 경우 NativeInt는 64 비트이며이 오류가 발생하는 것은 정상입니다. 또한

, 당신은 ( c:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config 을 같은 -M 옵션 컴파일 ( c:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config -B -Q ...) 또는 간단한 같은 -B 옵션을 사용하여 전체 빌드을하려고하고 있습니다 -M -Q ...)?

나는 또한 도움이되는지 확인하기 위해 모든 dcus를 제거하려고합니다.

IDE에서 작동하기 때문에 메시지 영역에 표시된 명령 줄을 캡처하고 콘솔에서 똑같은 줄을 시도하십시오.

+0

dcc32.exe에서 64 비트를 비활성화하는 방법은 무엇입니까? – Dmitry

+0

내 대답이 업데이트되었습니다. Dcc32.exe는 32 비트 코드 만 스필 아웃 (spill out)해야하지만, 실제로는 예상 된/좋은 dcc32.exe입니까? –

3

문제의 라인을 확인하십시오. 호환되어야하는 두 가지 유형이 호환되지 않는다고 말하는 경우 간단한 할당보다 복잡한 것이 있습니다. 추측해야한다면, 뭔가 함수 포인터를 전달하고 있으며 API가 변경되었습니다. 해당 케이스를 확인하십시오 ...