为什么OPENFILENAME lpstrFileTitle是LPSTR而不是LPCSTR?

Sam*_*uel 3 c++ winapi visual-c++

我正在创建一些文件打开对话框,偶然发现WinAPI中的一些不一致的东西(呵呵).

我完全理解为什么lpstrFileLPSTR作为条路径写入该变量.

很好,但为什么lpstrFileTitleLPCSTR呢?我已经阅读了MSDN上的文档,然后用Google搜索并发现没有令人满意的解释,因为它看起来并没有以任何方式进行修改.

这是兼容性残余还是什么?

传递std :: string时会导致烦人的变通方法,因为我无法使用c_str()和诉诸&str[0].

Mar*_*ila 6

lpstrFileTitle也是一个输出缓冲区.它包含没有所选文件的路径信息的名称和扩展名.