![](/img/trans.png)
[英]What do the certain files do after creating an empty project in Visual Studio 2012?
[英]What does creating a Solution using a template in Visual Studio actually do versus an empty project?
我正在关注 Molly Rocket 的 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:在 function“int __cdecl invoke_main(void)”(?invoke_main@@YAHXZ) 中引用了未解析的外部符号主
我已尝试更新 VS2019 的兼容性设置以及人们建议使用的其他设置,但错误仍然存在。
同样,当我创建解决方案时,我使用了空白文档而不是模板,因为这是 Molly Rocket 在编写此代码时使用的。
当我使用模板(我使用 Windows 桌面应用程序模板)并删除所有代码并粘贴到我在原始文档中的内容时,我没有收到错误,我想知道为什么。
感谢您的时间!
创建空项目时, SubSystem
的值默认为Console
。
根据文档
使用 /SUBSYSTEM:CONSOLE 的应用程序; 调用 main(或 wmain)
使用 /SUBSYSTEM:WINDOWS 的应用程序; 调用 WinMain(或 wWinMain),必须将其定义为使用 __stdcall
就我而言,您应该将SubSystem
设置为windows
( Properties -> Linker -> System -> SubSystem )
有关/SUBSYSTEM (Specify Subsystem)
的更多详细信息,建议您参考链接: https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem?view=vs- 2019
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.