Я делаю свой первый набег на программирование для Windows после неуловимого написания консольных приложений Linux. Я написал простую программу "Hello world" для ознакомления с Visual C++ (2010 Express) и получаю сообщение об ошибке (перечисленное ниже) при попытке построить решение.
Код:
#include <windows.h>
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;
}
Ошибка:
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
1>\\lc01users\users\users\grossw\docs\visual studio 2010\Projects\practice_2\Debug\practice_2.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Я видел, как этот вопрос задавался много раз здесь, в StackOverflow, но почти всегда правильное решение по изменению подсистемы с «окна» на «консоль», похоже, применимо только к людям, чьи программы используют простое сообщение для вывода на консоль вместо окно сообщений Windows; Я попытался изменить его, но я получаю ту же самую ошибку в любом случае.
Примечание. За исключением того, что не используется предварительно скомпилированный заголовок, все параметры Visual C++ Express 2010 установлены по умолчанию.
Я получил несколько предупреждений о том, что задаю плохие вопросы, и я знаю, что здесь все строго по какой-то причине, но я надеюсь, что это больше соответствует тому, что вы ищете :)
MessageBox
как в консоли, так и в приложениях Windows. В любом случае, я не уверен, почему, но кажется, что на этот раз VS хочет, чтобы у вас была функцияmain
, а неWinMain
, в приложении Windows. Вы изменили точку входа? - person chris   schedule 25.06.2014WinMain
здесь, поэтому изменение его наint main()
должно работать нормально, но, хотя я считаю это маловероятным, мне придется согласиться с ответом ниже, что вы просто нажимаете консольное приложение при создании проекта. - person chris   schedule 26.06.2014