Как я могу конвертировать std::ostringstream
в LPCSTR
?
std::ostringstream oss;
[...]
LPCSTR result = oss.str();
Результат: 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();
Обратите внимание, что вы cstr
действует только до следующей модификации str
, Так что вы не можете, например, вернуть cstr
из функции, потому что str
является локальной переменной, которая вышла из области видимости
Вместо возвращения LPCSTR
из этой функции вернуть std::string
, Это позволяет избежать решения проблем жизни, если вы вернулись LPCSTR
, Если вы вернулись LPCSTR
Вы должны были бы выделить память и убедиться, что вы ее освободили. Именно такого рода вещи вы не хотите делать в коде C ++. Итак, вернемся std::string
и позвонить c_str()
на этом объекте в точке, где вы вызываете функцию Windows API.