如何在Visual Studio(C ++)中查找应用程序的入口点

时间:2016-08-17 15:40:34

标签: c++ visual-studio visual-studio-2012

这个问题可能适用于用Visual Studio编写的任何编程语言,但我更关注C ++。

有没有办法在Visual Studio中轻松确定应用程序入口点?

对于相对较小的应用程序,这可能很容易,但对于大型应用程序,这将非常困难。在我的特定情况下,我知道设置为启动的项目是具有入口点的项目,但我无法找到它,即使应用程序启动并运行良好。

3 个答案:

答案 0 :(得分:3)

如果您想查找C ++项目可执行的内容,而不是在所有<ConfigurationType>Application</ConfigurationType>个文件中搜索*.vcxproj

如果您要在此应用程序中查找入口点功能,请搜索mainwmainWinMain函数。

此外,还可以使用/ENTRY参数重新定义入口点,以便检查Configuration Properties > Linker > Advanced > Entry Point项目参数或在/ENTRY中搜索*.vcxproj

答案 1 :(得分:2)

在C ++中,完全编译的程序只能有一个定义的var text = SplitCharsAndNums("asd1 asas4gr5 6ssfd"); var tokens = text.Split(' '); 方法。如果有多个,编译器会抱怨“主要的多个定义”或其他类似措辞的消息。

因此,最简单的选择是搜索符号main(或者,如果编译为Windows子系统程序,main)并找出哪些对应于“启动”项目。即使在相对较大的解决方案中,也不应该有那么多。

答案 2 :(得分:1)

当希望在主/ WinMain函数的顶部执行停止执行,同时在Windows上交互式调试进程时,我通常只使用F10 / F11(假设Visual中的默认C / C ++键绑定) Studio IDE)指示调试器单步执行(启动进程,然后执行步骤,然后中断)。

请注意,这可能并不总能满足您的需求。如果要捕获全局初始化,对象构造等,这些已在到达mainWinMain之前完成。这些需要在真实全局启动代码(最终调用mainWinMain)的CRT源代码中进行额外的调试和设置断点。但是如果你只是想要使用调试符号构建的程序的主要入口,这可能是最简单的方法。