如何在保留 '\0' 字符的同时将 std::string 转换为 LPCSTR?
我想在 OPENFILENAME.lpstrFilter 上使用结果,它要求过滤器包含 '\0' 作为分隔符。
std::string.c_str() 似乎剥离和修剪 '\0'
提前致谢!
===========================
(如何正确地在回复中添加评论,例如论坛中的回复帖子?)
阅读您的评论后,我继续仔细检查此代码段:
std::string filter = "Terrain Configuration (*.tcfg)\0*.tcfg\0\0";
const char* f1 = "Terrain Configuration (*.tcfg)\0*.tcfg\0\0";
const char* f2 = filter.c_str();
for(int i = 0; i < 50; i++)
{
char c1 = *(f1 + i); // works
char c2 = *(f2 + i); // doesn't work. beyond the first \0, it's garbage.
}
我对 c_str() 或 LPCSTR 的工作方式有误吗?