'\0' 文字を保持しながら std::string を LPCSTR に変換するにはどうすればよいですか?
フィルターに区切り文字として '\0' を含める必要がある OPENFILENAME.lpstrFilter で結果を使用したいと考えています。
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 の仕組みを間違えていますか?