난 그냥
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
{$IFDEF CONSOLE}
beep;
{$ENDIF}
end.
을 시도하고 런타임 동안
beep
있지만에게 듣고 기대했다. 그러나 다음 테스트는 작동합니다.
if IsConsole then
beep;
컴파일 타임 테스트가 작동하지 않는 이유는 무엇입니까? 내가 이해할 수있는 한 this doc에서 확실히 작동해야합니다.
오, 그래,이게 더 낫다. 하지만 왜 New/Console Application을 선택할 때이 옵션이 기본적으로 켜져 있지 않는가? –
@Andreas -'$ APPTYPE CONSOLE'과 다르게, GUI 응용 프로그램을위한 링커 옵션을 선택하고 I/O를 콘솔 창으로 방향 전환 할 수 있습니다. –
Sertac, 귀하의 의견을 이해할 수 없습니다. IDE가 IDE 옵션과 다른 점은 컴파일러 지시어가 CONSOLE을 자동으로 정의한다는 점을 제외하고는 어떻게됩니까? 어느 것이 든 서브 시스템이 사용할 PE 헤더를 설정하는 것인가? Andreas, 컴파일러 옵션에서 정의 된 기호 목록에 CONSOLE을 수동으로 추가하는 것을 막을 수있는 방법이 있습니까? –