Ошибка в программе с winAPI. LNK2019 invoke_main

#include <windows.h>  
#include <stdlib.h>  
#include <string.h>  
#include <tchar.h>  

int CALLBACK WinMain(
	_In_ HINSTANCE hInstance,
	_In_ HINSTANCE hPrevInstance,
	_In_ LPSTR     lpCmdLine,
	_In_ int       nCmdShow )
{
	MessageBox(NULL,
			_T("Call to RegisterClassEx failed!"),
			_T("Win32 Guided Tour"),
			NULL);
	return 0;
}

Ошибка LNK2019 ёё√ыър эр эхЁрчЁх°хээ√щ тэх°эшщ ёшьтюы _main т ЇєэъЎшш "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) graf6
Новичку не везёт. Помогите пожалуйста!

Похоже на проблемы с настройками проекта в VS (не тот Linker -> System -> SubSystem, …).

Можно просто создать новый проект и скопировать только

внутрь main.

Еще лучше выкинуть T и везде использовать *W версии функций и L""/wchar_t/wstring строки. https://stackoverflow.com/a/322087/964478

И вместо NULL либо nullptr (если нужен указатель), либо 0 (если число).

	MessageBoxW(0,
			 L"Call to RegisterClassEx failed!",
	 		 L"Win32 Guided Tour",
			 0);

Но мне нужно WIN API.

MessageBox вообще можно выкинуть. Не идет link. Но почему?

И? Как это противоречит моему ответу?)

:arrow_down:

Там от этой и других настроек зависит ожидает ли оно WinMain или обычный main и т.п.

Скажите пожалуйста, а где эти настройки подправить?

Настройки проекта, например из меню сверху.
Или при создании проекта выбирать шаблон проекта, где написано что-то про винду, а не консоль.

LNK2019 - ошибка компоновщика Microsoft Visual Studio 2019
возможных причин много:
Ошибка средств компоновщика LNK2019
Например я ловлю иногда эту ошибку когда путаю 64-х разрядные либы с 32-х разрядной компоновкой, или наоборот :slight_smile:

Ну тут же видимо нет либ, а жалуется на меин потому что ожидало другой его вариант вместо WinMain.
https://stackoverflow.com/a/46085227/964478