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

C++ 调试和发布配置中Windows API输出的差异,c++,C++,我正在使用下面的代码在我的代码中记录错误 PathFindFileName(__FILE__); 但是这个调用返回不同的输出(以字母为例)。 例如,在发行版中,它给出了确切的名称,而在调试中,它返回所有小写 这并没有什么害处,但我只是想知道为什么同一个API的输出会有差异 如果这是个不合适的问题,请原谅 返回值 类型:PTSTR 如果成功,则返回指向字符串地址的指针,或者 指向路径开头的指针,否则为 FindPathFileName返回指向其参数的文件部分子字符串的指针。它不分配任何内存来复制

我正在使用下面的代码在我的代码中记录错误

PathFindFileName(__FILE__);
但是这个调用返回不同的输出(以字母为例)。 例如,在发行版中,它给出了确切的名称,而在调试中,它返回所有小写

这并没有什么害处,但我只是想知道为什么同一个API的输出会有差异

如果这是个不合适的问题,请原谅

返回值

类型:PTSTR

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

FindPathFileName
返回指向其参数的文件部分子字符串的指针。它不分配任何内存来复制结果字符串,而是在同一缓冲区中使用相同的数据。因此,如果调试代码得到所有小写结果,则意味着该小写字符串已传递给函数

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


PS:

但是我们没有明确地向函数传递任何值。函数本身正在获取值,对吗?@BrahmaprasadR:读取CPP<代码>\uuuu文件在预处理期间甚至在编译之前就被替换。它以字符串形式(如
“C:\fle\bla\foo\bar.C”
)接收源文件的名称。所以传递的是文本字符串。这取决于预处理器插入的内容。我们有办法控制吗?@BrahmaprasadR:没有。问微软,看看这个问题:。。。别忘了给那个老问题加上投票。)哇!!。这很有说服力。非常感谢。@0xC0000022LIs API输出中的差异还是输入中的差异?你先核实了吗?好的,“文件”是罪魁祸首。它返回不同的值。现在告诉我这是怎么发生的。可能重复的