Visual Studio 中的 Qt 应用程序 - 入口点
Qt aplication in Visual Studio - entry point
我在 Qt 中有一个控制台应用程序,我想在 Visual Studio 中执行它,因此我可以使用它的分析器。
我正在使用一个名为 Qt VS Tool 的插件,它似乎已经正确导入了项目。我也可以创建一个新的 Qt 项目,它工作正常。
但是在我导入的这个应用程序上,VS 似乎正在搜索 WinMain 函数作为入口点而不是 main,即使 "SubSystem" 在 中设置为 Console (/SUBSYSTEM:CONSOLE)
]配置属性 -> 链接器 -> 系统 -> 子系统。
我收到这个错误:
LNK2019 unresolved external symbol WinMain referenced in function
__tmainCRTStartup
如果我手动将入口点更改为 "main",在 配置属性 -> 链接器 -> 高级 -> 入口点,应用程序启动,但是 argc
和 argv
包含垃圾。好像是not possible在指定入口点时传递参数。
如何让它与 int main(int argc, char *argv[])
一起正常工作?
由于库的原因,我正在使用带有 MSVC 11 编译器 (VS 2012) 的 VS 2015 社区。
我找到的解决方案是在配置属性-> 链接器-> 高级-> 入口点 中将入口点设置为mainCRTStartup
。 main
和 mainCRTStartup
之间的区别在 here.
中讨论
这样一来,参数就被正确地传递给了主函数。
我在 Qt 中有一个控制台应用程序,我想在 Visual Studio 中执行它,因此我可以使用它的分析器。
我正在使用一个名为 Qt VS Tool 的插件,它似乎已经正确导入了项目。我也可以创建一个新的 Qt 项目,它工作正常。
但是在我导入的这个应用程序上,VS 似乎正在搜索 WinMain 函数作为入口点而不是 main,即使 "SubSystem" 在 中设置为 Console (/SUBSYSTEM:CONSOLE)
]配置属性 -> 链接器 -> 系统 -> 子系统。
我收到这个错误:
LNK2019 unresolved external symbol WinMain referenced in function __tmainCRTStartup
如果我手动将入口点更改为 "main",在 配置属性 -> 链接器 -> 高级 -> 入口点,应用程序启动,但是 argc
和 argv
包含垃圾。好像是not possible在指定入口点时传递参数。
如何让它与 int main(int argc, char *argv[])
一起正常工作?
由于库的原因,我正在使用带有 MSVC 11 编译器 (VS 2012) 的 VS 2015 社区。
我找到的解决方案是在配置属性-> 链接器-> 高级-> 入口点 中将入口点设置为mainCRTStartup
。 main
和 mainCRTStartup
之间的区别在 here.
这样一来,参数就被正确地传递给了主函数。