书籍:《windows程序设计(第五版)》的开始

环境:visual studio 2022

内容:格式化消息框

说明:以下内容大部分来自腾讯元宝。

问题

选择“控制台应用程序(.exe)”模板,创建空项目后,新建SCRNSIZE.c,输入以下代码后,编译,报错:error LNK2019: 无法解析的外部符号 main,函数 "int __cdecl invoke_main(void)" 

#include <Windows.h>
#include <tchar.h>
#include <stdio.h>

int CDECL MessgeBoxPrintf(TCHAR* szCaption, TCHAR* szFormat, ...)
{
	TCHAR szBuffer[1024];
	va_list pArgList;

	va_start(pArgList, szFormat);
	_vsnwprintf_s(szBuffer, sizeof(szBuffer) / sizeof(TCHAR), _TRUNCATE, szFormat, pArgList);
	va_end(pArgList);

	return MessageBox(NULL, szBuffer, szCaption, 0);

}

int WINAPI WinMain(HINSTANCE hInstatnce, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
	int cxScreen, cyScreen;

	cxScreen = GetSystemMetrics(SM_CXSCREEN);
	cyScreen = GetSystemMetrics(SM_CYSCREEN);

	MessgeBoxPrintf(TEXT("ScrnSize"), TEXT("The screen is %i pixels wide by %i pixels high."), cxScreen, cyScreen);

	return 0;
}

原因

控制台应用程序(.exe)”模板对应的程序入口应该是main或wmain而非WinMain或wWinMain ,创建工程时选择"桌面应用程序(.exe)"模板即可解决这个问题,程序入口为WinMain或wWinMain。

相关内容

/SUBSYSTEM:WINDOWS-CSDN博客https://blog.csdn.net/qq_20725221/article/details/146253392

Logo

一站式 AI 云服务平台

更多推荐