2011-10-08 5 views

답변

4

윈도우 PE (휴대용 실행) 형식은 실행 파일이 콘솔 또는 윈도우 모드인지 내용의 헤더에 플래그를 가지고있다. Windows는 응용 프로그램에 따라 콘솔 창을 할당하거나 할당하지 않습니다. 또한 진입 점이 main인지 WinMain인지 여부도 결정합니다.

Linux ELF 형식에는 유사한 플래그가 없습니다. 진입 점은 항상 main입니다. "콘솔 창"의 개념은 Linux에서 완전히 다릅니다.

사용자가 코드를 시작하는 곳에서 언급 한 진입 점이므로 컴파일러/링커는 항상 사용자 입력 지점 전에 실행되는 런타임 라이브러리 시작 코드를 제공합니다. 실제 진입 점이있는 곳입니다.)

1

전적으로 사용하는 GUI 라이브러리에 따라 다릅니다. (호스트 모드)는 C 프로그램에 대한 진입 점은 항상 주요 (보통, 그것은 사물을 구성하는 C 시작 코드의 다음 당신의 코드가 시작되는되는 주요 호출합니다.

일부 환경 코드를 호출하기 전에 물건을 설정 main의 자신의 버전을 제공합니다. 그러나, QtKDE (이 같은 예) 여전히 main를 사용하고 자신까지 envirnment을 설정하는 데 필요한 것입니다.

0

를 예 항상 주입니다 ().

리눅스 자체는 GUI와 비 GUI 프로그램을 구분하지 않습니다. 실행 파일에 "this is a console app"또는 "this is a window app"플래그가 없습니다.

엄밀히 말하면 엔트리 포인트는 main()이 아니라 _start 또는 뭔가입니다. 그러나 표준 C 라이브러리 또는 그 변형과 링크하는 경우 C 언어의 관례에 따라 main()이되는 경향이 있습니다.

관련 문제