Я удалил _tmain()
метод, который генерируется IDE, потому что я не вижу смысла иметь две точки входа после добавления моего WinMain
запись. И да, это мое первое приложение на C ++, и я новичок, но, пожалуйста, будьте милы.
Вот и все, что я получил:
// 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.
Когда я пытаюсь собрать и запустить, я получаю эту ошибку:
ошибка LNK2019: неразрешенный внешний символ _main, указанный в функции ___tmainCRTStartup
ошибка LNK1120: 1 неразрешенная внешность
Я понимаю, что точка входа отсутствует, но где я могу установить WinMain
как точка входа? Я просто посмотрел в свойствах самого проекта и ничего не нашел.
Обратите внимание, что я запустил проект как консольное приложение, но сейчас я пытаюсь превратить его в обычное Windows-приложение.
Благодарю.
Вам нужно изменить подсистему на Windows.
Проект-> Свойства-> Компоновщик-> Подсистема смены системы на / SUBSYSTEM: WINDOWS
Если у вас возникли дополнительные проблемы, начните все сначала, выбрав Win32 Project вместо Win32 Console.
Похоже, вы пытаетесь создать консольное приложение с кодом, который вы импортировали из приложения Windows.
Консольные приложения используют основную (или _tmain) точку входа, тогда как windows-приложения используют точку входа WinMain (или _tWinMain).
Изменить: Действительно, изменение параметра компоновщика, как сказал Бенджамин, решит вашу непосредственную проблему, но вы, вероятно, столкнетесь позже с такими гибридными проектами. Например, вы можете включить некоторый код, основанный на символе препроцессора _CONSOLE.
Вы, конечно, можете настроить и этот последний параметр самостоятельно, но лучше перезапустите его из чистого шаблона win32, как предложили Скотт и Ханс.