Question

I've deleted the _tmain() method which the IDE generated because I find no sense having two entry points after adding my WinMainentry. And yes, this is my first ever C++ application and I am a newbie, but please be nice.

So that's all I got:

// 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.

When I try to build and run I get this error:

error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup

error LNK1120: 1 unresolved externals

I realise the entry point is missing, But where can I set WinMain as the entry point? I just took a look in the properties of the project itself and found nothing. Note that I've started the project as a console application, But now I am trying to turn it into a regualr windows application.

Thanks.

Was it helpful?

Solution

You need to change the subsystem to Windows.

enter image description here

OTHER TIPS

Project->Properties->Linker->System change Subsystem to /SUBSYSTEM:WINDOWS

If you have further trouble with it then start all over again, selecting Win32 Project instead of Win32 Console.

It sounds you are trying to build a console application with code that you imported from a windows application.

Console applications use a main (or _tmain) entry point, whereas windows applications use a WinMain (or _tWinMain) entry point.

Edit: Indeed changing the linker option as Benjamin told you will solve your immediate problem but you are likely to meet other issues later with such hybrid projects. For example you may include some code relying on the _CONSOLE preprocessor symbol. You can of course adjust this latter setting yourself too but better restart from a clean win32 template as Scott and Hans suggested.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top