调试和发布配置中Windows API输出的差异

时间:2015-07-09 09:22:03

标签: c++

我在代码中使用以下代码进行错误记录。

PathFindFileName(__FILE__);

但是这个调用正在返回不同的输出(就字母而言)。 也就是说,在发布中它给出了确切的名称,而在调试中它返回所有小写的情况。

由于这一点没有任何危害,但我只是想知道为什么同一API的输出存在差异。

如果这是一个不恰当的问题,请原谅我

1 个答案:

答案 0 :(得分:2)

  

返回值

     

类型:PTSTR

     

如果成功,则返回指向字符串地址的指针,或者a   否则指向路径的开头。

FindPathFileName返回指向其参数的文件部分子字符串的指针。它没有分配任何内存来复制结果字符串,它的相同缓冲区具有相同的数据。因此,如果您的调试代码获得全部小写结果,则意味着将小写字符串传递给函数。

调试版和发行版之间的Win32 API方法可能没有区别,因为您从相同的动态链接库调用相同的方法。如果得到不同的结果,则意味着只有函数参数不相同。

PS:https://social.msdn.microsoft.com/Forums/vstudio/en-US/17a395c7-b7dc-41a4-a19c-dda7afa3e063/why-file-returns-different-results-for-debug-and-release-vs-2012?forum=vcgeneral