2011-08-10 2 views
6

System.pas에 따르면 True if compiled as console app으로 설명되어 있습니다. System.pas에서, 또한 내가 애플 리케이션에서 ShellExecute를 사용하여 델파이 응용 프로그램에서 실행되는 이상한 문제가 할당Delphi에서 System.IsConsole이 언제 사용됩니까?

{$IFDEF LINUX} 
    IsConsole := True; 
... 

가 있고, 다음은 (예상치 못한) 예외

을 제기,이 코드로 실행
if System.IsConsole then 
    raise Exception.Create(Msg) 

응용 프로그램이 Project/Options/Linking/Generate console application으로 컴파일되지 않았습니다. 그 밖의 무엇이 IsConsole을 true로 설정할 수 있습니까? 항상 true 인 델파이 XE2에서, OSX 응용 프로그램이 변수를 사용할 수 없습니다


참고. 그것을 발견 QC Entry 98956Why Does My OSX FireMonkey App Think It Is a Console App ?

+0

'프로젝트/옵션/연결/생성 콘솔 응용 프로그램'과'{$ APPTYPE 콘솔} '은 별개의 두 가지입니다. –

+1

코드가 설정 될 수 있습니다! –

답변

5

를 참조하십시오 dcc32.exe과 조선 민주주의 인민 공화국/CFG 파일을 사용하여 생성 된 실행 파일은 CFG는 라인 콘솔 응용 프로그램을 만듭니다

-cc 

가 포함되어 있습니다.

Project/Options/Linking/Generate console application 대화 상자에서 Delphi 2009 Enterprise IDE에이 설정이 표시되지 않습니다. 응용 프로그램은 이전 델파이 버전에서 포팅되었고 어쩌면 뭔가 잘못되었을 수 있습니다.

+0

이 정확한 일은 한 번 나에게 일어 났지만 몇 년 전이었습니다. msbuild 가능 버전의 델파이에서 dcc32.exe를 직접 호출하지 않는 데에는 많은 이유가 있지만, 이것은 가장 알기 쉬운 것일 수 있습니다. –

+0

@Warren dcc32로 쉽게 해결할 수 있습니다 - 모든 소스 파일을 새로운 대상 디렉토리로 복사하지만 cgf없이 스크립트 파일의 올바른 설정으로 컴파일러를 호출하십시오. 우리의 자동화 된 빌드 프로세스에서 msbuild로 마이그레이션 할 수있는 장점이 없다는 것을 알고 있습니다. msbuild는 약간의 불분명 한 준비가 필요합니다 (http://stackoverflow.com/questions/1821112/how-does-msbuild-find-the-delphi-search-path) 빌드 서버에서 작업 할 수 있습니다 -하지만 아마도 커뮤니티 위키 일 수 있습니다) – mjn

+0

빌드 후 단계를 사용하고 dcc32 명령 줄을 컴파일하는 경우 빌드 후 단계가 완료되지 않습니다. –

관련 문제