2013-08-05 2 views
4

wmain()을 진입 점으로 사용하는 Visual Studio 프로젝트가 있습니다. 대신 main()을 사용하고 싶습니다. 나는 단순히 int main()에 함수 서명을 변경하는 경우wmain() 대신 main()을 사용하도록 설정하는 옵션

, 내가 얻을 :

오류 LNK2019을 : 확인되지 않은 외부 기호는 기능에서 참조 _wmain "무효 __cdecl mainCRTStartupHelper (구조체 HINSTANCE__ * 서명되지 않은 짧은 CONST *)"

링크를 성공 시키려면 어떤 옵션을 변경해야합니까?

+0

프로젝트> 속성> 일반> 문자 집합 –

+1

@IgorTandetnik : 이것은 유망한 것으로 보입니다. 나는 그것을 'Configuration Properties> General> Character Set'에서 찾았습니다. 'Not Set', 'Use Unicode Character Set', 'Use Multi Byte Character Set'의 세 가지 옵션이 있습니다. 그들 중 누구도 일하는 것 같지 않습니다. – nobar

+2

사실, 문제를 재현 할 수 없습니다. 방금 새로운 Win32 Console 프로젝트를 만들었습니다. 프로젝트 설정을 변경하지 않고'main','wmain','_tmain' 사이에서 자유롭게 변경할 수 있습니다. 매우 긴 시간 동안 Linker> Advanced> Entry Point에서 어떤 항목이 있습니까? –

답변

0

추측을 통해 해결책을 찾았습니다.

Configuration Properties > Linker > Advanced > Entry Point

했다 : mainWCRTStartup

지금 : mainCRTStartup ##은 W

빌드가 성공 제거.

+0

라이브러리를 사용하는 프로젝트에서는 사용할 수 없습니다. – kovarex

0

소스 파일에 int main() 앞에이 pragma을 삽입하십시오.

의 #pragma 주석 (링커, "/ SUBSYSTEM : CONSOLE/ENTRY : mainCRTStartup") 비주얼 스튜디오 프로젝트 구성에서

, 문자가 Use Multi-Byte Character Set 설정 변경합니다.

+0

이 솔루션은 작동하지 않습니다. '/ ENTRY : mainwCRTStartup'스위치와 호환되지 않습니다 '/ ENTRY : mainCRTStartup'; 무시당한 – kovarex

관련 문제