如何在 Visual Studio 中查找应用程序的入口点 (C++)
How to find an application's entry point in Visual Studio (C++)
这个问题可能适用于在Visual Studio中编写的任何编程语言,但我更关心的是c++。
是否有一种方法可以轻松确定Visual Studio中的应用程序入口点?
对于一个相对较小的应用程序,这可能很容易,但对于大型应用程序,这将是相当困难的。在我的特殊情况下,我知道设置为启动的项目是具有入口点的项目,但我无法找到它,即使应用程序启动并运行良好。
如果你想找到可执行的c++项目,请在所有*.vcxproj
文件中搜索<ConfigurationType>Application</ConfigurationType>
。
如果您在此应用程序中寻找入口点函数,则搜索main
, wmain
或WinMain
函数。
也可以用/ENTRY
参数重新定义入口点,因此您可以检查Configuration Properties > Linker > Advanced > Entry Point
项目参数或在*.vcxproj
中搜索/ENTRY
。
在c++中,一个完全编译的程序只能有一个已定义的main
方法。如果有多个,编译器将报错"main的多个定义"或其他类似的消息。
因此,最简单的选择是搜索符号main
(或者,如果作为Windows子系统程序编译,则为WinMain
),并找出哪些与"启动"项目对应。即使在一个相对较大的解决方案中,也不应该有那么多。
当想要停止在main/WinMain函数的顶部执行,而在Windows上交互式调试进程时,我通常只使用F10/F11(假设Visual Studio IDE中默认的C/c++键绑定)来指示调试器执行单步(启动进程,然后执行步骤,然后中断)。
注意,这可能并不总是做你想要的。如果你想捕获全局初始化、对象构造等,这些在main
或WinMain
之前就已经完成了。这些需要在crt源代码中为真实的全局启动代码(最终调用main
或WinMain
)进行额外的调试和设置断点。但是,如果您只是想在一个用调试符号构建的程序的主条目上中断,这可能是最简单的方法。
- 修改程序的入口点时未调用全局变量的构造函数
- 函数声明中的 WINAPI 标识符C++ DLL 入口点函数中的标识符
- 如何更改 c++ 文件的 mach-o 可执行文件的入口点?
- 如何使用CMake在Windows上将应用程序入口点设置为main()C++?
- SWIG c++ 到 C# 错误找不到入口点SWIGRegisterExceptionCallbacks_xxxx
- C++可执行文件继续寻找序号入口点
- 如何在不指定 C++ 中的所有参数的情况下声明程序的 main() 入口点
- 代码问题.使用矢量删除相同的数字,除了它的最后一个入口
- QDIR入口列表可以使用文件夹快捷方式透明地工作
- Bluez5:入口配对完成时的事件
- C++ minGW 找不到过程入口点
- Visual Studio 中的 Qt 应用程序 - 入口点
- Adobe 字符串内存泄漏 - 在哪里调用外部库入口点以释放内存?
- 特征:优化入口周围的越界矩阵块/切片
- 生成文件问题(体系结构x86_64的未定义符号:"_main",引用自:主可执行文件的隐式入口/启动)
- 运行 exe - C++ 时找不到入口点
- 初学者问题 - 致命错误LNK1561:必须定义入口点
- 在 Win 7 SP 中创建 exe vcxproj:过程入口点<function>无法位于动态链接库中KERNAL32.dll
- 必须定义LNK1561入口点 - SDL
- 托管C#Win32应用程序的非托管DLL.与课堂入口