Как установить WinMain в качестве точки входа?

Я удалил _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-приложение.

Благодарю.

1

Решение

Вам нужно изменить подсистему на Windows.

введите описание изображения здесь

2

Другие решения

Проект-> Свойства-> Компоновщик-> Подсистема смены системы на / SUBSYSTEM: WINDOWS

Если у вас возникли дополнительные проблемы, начните все сначала, выбрав Win32 Project вместо Win32 Console.

1

Похоже, вы пытаетесь создать консольное приложение с кодом, который вы импортировали из приложения Windows.

Консольные приложения используют основную (или _tmain) точку входа, тогда как windows-приложения используют точку входа WinMain (или _tWinMain).

Изменить: Действительно, изменение параметра компоновщика, как сказал Бенджамин, решит вашу непосредственную проблему, но вы, вероятно, столкнетесь позже с такими гибридными проектами. Например, вы можете включить некоторый код, основанный на символе препроцессора _CONSOLE.
Вы, конечно, можете настроить и этот последний параметр самостоятельно, но лучше перезапустите его из чистого шаблона win32, как предложили Скотт и Ханс.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector