클래스 내에 WinMain()
함수를 숨기는 방법이 있습니까? 고맙습니다.winmain() 함수를 숨기는 것
답변
아니요. 더 나은 질문은 "왜 하시겠습니까?"입니다. Java 또는 C#에서 main 함수는 정적 클래스 멤버입니다. 언어가 더 좋거나 깔끔하지 않기 때문에가 아니라 이 비 멤버 함수를 허용하기 때문에 아닙니다. C++에서는 많은 경우 허용되고 심지어 권장됩니다.
프로그램의 진입 점인 주 기능이 "외부"인 것이 더 합당합니다. 기본적으로 빈 환경에서 시작한 다음 실제 응용 프로그램 논리를 호출하기 전에 설정해야하는 모든 것을 설정합니다.
Windows는 이름이 아닌 PE 헤더에 저장된 주소를 사용하여 진입 점을 찾습니다. 따라서 실제로는 올바른 호출 규칙을 가진 함수가 될 수 있습니다 (결코 반환하지 않기 때문에 호출 규칙도 중요하지 않습니다). 클래스 정적 멤버 함수의 이름을 링커에 전달하여 엔트리 포인트로 사용하는 것을 쉽게 상상할 수 있습니다. –
@BenVoigt : 사실,하지만 이제는 더 이상 WinMain이 아닙니다. ;) 플러스, 소스 코드를 만지작 거리는 것으로는 할 수없는 일은 해킹입니다. 하지만 그래, 네 말이 맞아. 끝낼 수있어. – jalf
달성하고자하는 것을 조금 더 자세히 설명하고 몇 가지 예제 코드를 보여주는 이유와 이유를 설명해야합니다. – ChrisWue
무엇을 숨겨야합니까? – zneak
예, 가능합니다. 왜 이것을 달성하기 위해 CRT 코드를 다시 쓰고 싶습니까? 그것은 매우 신비 롭습니다. –