2011-12-27 2 views
0

클래스 내에 WinMain() 함수를 숨기는 방법이 있습니까? 고맙습니다.winmain() 함수를 숨기는 것

+0

달성하고자하는 것을 조금 더 자세히 설명하고 몇 가지 예제 코드를 보여주는 이유와 이유를 설명해야합니다. – ChrisWue

+0

무엇을 숨겨야합니까? – zneak

+0

예, 가능합니다. 왜 이것을 달성하기 위해 CRT 코드를 다시 쓰고 싶습니까? 그것은 매우 신비 롭습니다. –

답변

2

아니요. 더 나은 질문은 "왜 하시겠습니까?"입니다. Java 또는 C#에서 main 함수는 정적 클래스 멤버입니다. 언어가 더 좋거나 깔끔하지 않기 때문에가 아니라 비 멤버 함수를 허용하기 때문에 아닙니다. C++에서는 많은 경우 허용되고 심지어 권장됩니다.

프로그램의 진입 점인 주 기능이 "외부"인 것이 더 합당합니다. 기본적으로 빈 환경에서 시작한 다음 실제 응용 프로그램 논리를 호출하기 전에 설정해야하는 모든 것을 설정합니다.

+1

Windows는 이름이 아닌 PE 헤더에 저장된 주소를 사용하여 진입 점을 찾습니다. 따라서 실제로는 올바른 호출 규칙을 가진 함수가 될 수 있습니다 (결코 반환하지 않기 때문에 호출 규칙도 중요하지 않습니다). 클래스 정적 멤버 함수의 이름을 링커에 전달하여 엔트리 포인트로 사용하는 것을 쉽게 상상할 수 있습니다. –

+0

@BenVoigt : 사실,하지만 이제는 더 이상 WinMain이 아닙니다. ;) 플러스, 소스 코드를 만지작 거리는 것으로는 할 수없는 일은 해킹입니다. 하지만 그래, 네 말이 맞아. 끝낼 수있어. – jalf

관련 문제