eso es sólo porque se debe utilizar std::string::c_str()
método.
Pero esto implica const_cast
en caso dado, porque const char *
devuelto por c_str()
no se puede asignar a un no constante LPSTR
.
std::string str = "something";
LPSTR s = const_cast<char *>(str.c_str());
Pero usted debe estar seguro de que toda la vida de str
será más larga que la de LPTSTR
variable.
Otra mención, si el código se compila como compatible con Unicode, entonces los tipos LPTSTR
y std::string
son incompatibles. Debería usar std::wstring
en su lugar.
Nota importante: Si pasa el puntero resultante s
desde arriba a una función que intenta modificar los datos que apunta a este dará lugar a un comportamiento indefinido. La única forma de tratarlo adecuadamente es duplicar la cadena en un búfer no const (por ejemplo, a través de strdup
)
¿Cómo están intentando la conversión? –