2011-12-31 2 views
-3

Visual Studio에서 유니 코드 문자 집합을 사용하는 동안 WinMain() 함수를 오버로드 할 수 있습니까? 고맙습니다. 의 WinMain 과부하 아무 소용이 없습니다유니 코드 문자 집합을 사용하는 동안 WinMain() 함수 오버로드

Here's the code i am talking about

+0

과부하'의 WinMain()': 당신이 유니 코드에서 작업 할 비 유니 코드가 다음 빌드하면 당신은 pszCmdLine 매개 변수의 wchar_t *와 숯불 *을 받아 수세를해야한다? 뭐? 왜? 그것은 나 빠진다. – ssube

+0

메신저가 게임 엔진을 쓰려고 노력하고 있으며, 내가 아는 한 일반적인 관행입니다. –

+0

무슨 목적으로? 뭐하고 싶어? 나는 이것을 진입 점으로 한 번만 불렀다고 간주하면서 실용적인 용도로 생각할 수 없다. 어쩌면 유니 코드 또는 ANSI 문자로 컴파일하려는 경우 TCHAR 버전 인'_tWinMain'을 찾고 있습니까? – tenfour

답변

2

,이 기능은 시작시 한 번만 호출됩니다.

int WINAPI _tWinMain(
    HINSTANCE hInstanceExe, 
    HINSTANCE, 
    PTSTR pszCmdLine, 
    int nCmdShow); 
+0

과부하 일 수 있습니다. 그것이 내가이 질문을 올린 이유입니다. –

+3

@Abdulali : 아니, 할 수 없습니다. 유니 코드 엔트리 포인트의 이름은'wWinMain'입니다. 서로 다른 이름으로 두 개의 함수를 오버로드 할 수 없습니다. '_tWinMain'은'UNICODE' 매크로가 정의되어 있는지에 따라 단순히'WinMain' 또는'wWinMain'으로 확장됩니다. – ildjarn

+0

완벽하게 잘 작동하는 오버로드 된'WinMain()'함수로 작업하는 코드가 있습니다. 그러나 일단 그것을 VS2010으로 가져 오면 충돌이 발생합니다. 필자는 MSDN에서 이것을 살펴본 데 그 이유가 WinMain()의'lpCmdLine' 매개 변수라는 것을 알게되었습니다. 그러나 MSDN은 샘플 코드를 제공하지 않습니다. –