2014-04-25 4 views
0

WinMain 항목을 추가 한 후 두 개의 진입 점을 갖는 의미가 없기 때문에 IDE에서 생성 한 _tmain() 메서드를 삭제했습니다. 그리고 네, 이것은 처음 C++ 응용 프로그램이고 저는 초보자입니다.WinMain을 진입 점으로 설정하는 방법은 무엇입니까?

는 그래서 내가 가진 전부 :

// Included headers: 
#include "stdafx.h" 
#include <iostream> 
#include <Windows.h> 
// Shortened namespaces: 
using namespace std; 
// The main entry of the application: 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) 
{ 
    MessageBox(NULL, L"Hello World!", L"Just another Hello World program!", MB_ICONEXCLAMATION | MB_OK); 
    return 0; 
} 
// End of file. 

내가 빌드하려고하고 실행 나는이 오류를 얻을 :

error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup

error LNK1120: 1 unresolved externals

내가 엔트리 포인트가 누락 실현,하지만 WinMain을 설정할 수를 진입 점으로? 방금 프로젝트 자체의 속성을 살펴보고 아무 것도 발견하지 못했습니다. 콘솔 응용 프로그램으로 프로젝트를 시작했지만 지금은 regualr windows 응용 프로그램으로 바꾸려고합니다.

감사합니다.

+0

이전에 해보지 않은 경우 어떻게 "감각적이지 않습니까?" 그건 그렇고, 대답은 이해할 수 없기 때문입니다. –

+0

어떤 컴파일러와 IDE를 사용하고 있습니까? –

+0

@ BenjaminLindley, VS2013을 사용하고 있습니다. – Lispwave

답변

1

하위 시스템을 Windows로 변경해야합니다.

enter image description here

1

프로젝트 -> 속성 -> 링커 -> 시스템 변화 서브 시스템/서브 시스템 : WINDOWS

당신은 다음 Win32 프로젝트 대신 Win32 콘솔을 선택, 다시 모든 시작과 함께 더욱 문제가 있다면 .

0

Windows 응용 프로그램에서 가져온 코드로 콘솔 응용 프로그램을 빌드하려고하는 것 같습니다.

콘솔 응용 프로그램은 주 (또는 _tmain) 진입 점을 사용하지만 Windows 응용 프로그램은 WinMain (또는 _tWinMain) 진입 점을 사용합니다.

편집 : 실제로 벤자민은 즉각적인 문제를 해결할 것이라고 말했지만 실제로는 이러한 하이브리드 프로젝트로 다른 문제를 만날 가능성이 높습니다. 예를 들어, _CONSOLE 전 처리기 기호에 의존하는 일부 코드를 포함 할 수 있습니다. 물론이 후자의 설정을 직접 조정할 수도 있지만 Scott과 Hans가 제안한 것처럼 깨끗한 win32 템플릿에서 다시 시작하는 것이 좋습니다.