gpt4 book ai didi

c++ - 与空项目相比,在 Visual Studio 中使用模板创建解决方案实际上有什么作用?

转载 作者:行者123 更新时间:2023-12-01 14:42:47 26 4
gpt4 key购买 nike

我正在关注 Molly Rocket 的 Intro to C 教程,但在使用 Empty Project 选项时在 VisualStudio 2019 的调试器中运行以下代码时遇到问题。

我正在使用 Empty Project 选项而不是加载模板,因为这是 Molly 使用的,而我可以加载模板并在那里运行代码,我想知道为什么会出现此错误,以便更好地理解 Visual Studio和 C++。

#include <Windows.h>

void learnC(void) {

OutputDebugStringA("Test\n");

}

int CALLBACK WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
learnC();
}

收到错误 LNK2019 这根本没有帮助,因为它只是一个通用的捕获所有错误代码。

错误 LNK2019:函数“int __cdecl invoke_main(void)”(?invoke_main@@YAHXZ) 中引用了未解析的外部符号 main

我已尝试更新 VS2019 的兼容性设置以及人们建议使用的其他设置,但错误仍然存​​在。

同样,当我创建解决方案时,我使用了空白文档而不是模板,因为这是 Molly Rocket 在编写此代码时使用的。

当我使用模板(我使用 Windows 桌面应用程序模板)并删除所有代码并粘贴到我在原始文档中的内容时,我没有收到错误,我想知道为什么。

感谢您的时间!

最佳答案

创建空项目时,SubSystem 的值默认为 Console .

enter image description here

根据Doc

An application that uses /SUBSYSTEM:CONSOLE; calls main (or wmain)

An application that uses /SUBSYSTEM:WINDOWS; calls WinMain (or wWinMain), which must be defined to use __stdcall



就我而言,您应该设置 SubSystemwindows ( 属性 -> 链接器 -> 系统 -> 子系统 )

enter image description here

更多详情 /SUBSYSTEM (Specify Subsystem) ,我建议你可以引用链接: https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem?view=vs-2019

关于c++ - 与空项目相比,在 Visual Studio 中使用模板创建解决方案实际上有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62077486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com