在C ++中查找函数调用者(Visual Studio)

时间:2018-01-09 17:49:31

标签: c++ visual-studio

我有一个Visual Studio 2015 C ++项目,它不能在WinXP下运行,因为函数getTickCount64()在某处被调用(只有Vista和更高版本)。该函数位于外部库Kernel32.dll中,因此我无法将其声明为弃用以获取编译器警告。

我多次检查过,而且我自己没有调用这个函数,它必须在我使用的第三方库中。

如何确定调用函数的位置?

2 个答案:

答案 0 :(得分:0)

使用函数断点(Debug-> New Breakpoint-> Function断点),然后使用调用堆栈查看调用它的位置。

答案 1 :(得分:0)

您将无法在运行时使用调试器找到罪魁祸首,因为您的程序将无法在运行时加载。您必须静态搜索应用程序使用的每个第三方库,直到找到静态调用该功能的那个库。如果您没有库的源代码,您至少可以搜索目标文件或导入链接到应用程序的库,查找对该函数的任何引用。