Tom*_*ler 2 c++ winapi std visual-studio lpcstr
我怎样才能转换std::ostringstream成LPCSTR?
std::ostringstream oss;
[...]
LPCSTR result = oss.str();
Run Code Online (Sandbox Code Playgroud)
结果: Error: No suitable conversion function from "std::basic_string<char, std::char_traits<char>, std::allocator<char>>" to "LPCSTR" exists
像这样:
std::string str = oss.str();
LPCSTR cstr = str.c_str();
Run Code Online (Sandbox Code Playgroud)
请注意,cstr在下次修改之前,您才有效str.所以你不能,例如,cstr从函数返回,因为str是一个已经留下范围的局部变量.
而不是LPCSTR从这个函数返回,返回std::string.如果你回来,这可以避免处理终身问题LPCSTR.如果您返回LPCSTR,则必须分配内存并确保已取消分配.确实是你不想在C++代码中做的事情.因此,在调用Windows API函数的位置返回std::string并调用c_str()该对象.