使用 Visual Studio 中的模板创建解决方案与空项目相比有何实际作用?
What does creating a Solution using a template in Visual Studio actually do versus an empty project?
我正在关注 Molly Rocket 的 C 入门教程,但在使用“空项目”选项时 运行在 VisualStudio 2019 的调试器中使用以下代码时遇到了一个问题。运行 =12=]
我正在使用空项目选项而不是加载模板,因为这是 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,这根本没有帮助,因为它只是一个通用的捕获所有错误代码。
error LNK2019: 未解析的外部符号 main 在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)[=31= 中引用]
我已尝试更新 VS2019 的兼容性设置以及人们建议使用的其他设置,但错误仍然存在。
同样,当我创建解决方案时,我使用了空白文档而不是模板,因为 Molly Rocket 在编写此代码时使用的是模板。
当我使用模板(我使用 Windows 桌面应用程序模板)并删除所有代码并粘贴我在原始文档中的内容时,我没有收到错误,我想想知道为什么。
感谢您的宝贵时间!
创建空项目时,SubSystem
的值默认为 Console
。
根据 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
据我所知,您应该将 SubSystem
设置为 windows
(Properties -> Linker -> System -> SubSystem)
更多关于/SUBSYSTEM (Specify Subsystem)
的内容,建议您参考link:https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem?view=vs-2019
我正在关注 Molly Rocket 的 C 入门教程,但在使用“空项目”选项时 运行在 VisualStudio 2019 的调试器中使用以下代码时遇到了一个问题。运行 =12=]
我正在使用空项目选项而不是加载模板,因为这是 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,这根本没有帮助,因为它只是一个通用的捕获所有错误代码。
error LNK2019: 未解析的外部符号 main 在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)[=31= 中引用]
我已尝试更新 VS2019 的兼容性设置以及人们建议使用的其他设置,但错误仍然存在。
同样,当我创建解决方案时,我使用了空白文档而不是模板,因为 Molly Rocket 在编写此代码时使用的是模板。
当我使用模板(我使用 Windows 桌面应用程序模板)并删除所有代码并粘贴我在原始文档中的内容时,我没有收到错误,我想想知道为什么。
感谢您的宝贵时间!
创建空项目时,SubSystem
的值默认为 Console
。
根据 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
据我所知,您应该将 SubSystem
设置为 windows
(Properties -> Linker -> System -> SubSystem)
更多关于/SUBSYSTEM (Specify Subsystem)
的内容,建议您参考link:https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem?view=vs-2019