As I clould not pass LPCSTR from one function to another (Data get changed) I tried passing it as a string.
But later I need to again convert it back to LPSTR. While trying the conversion I am getting the above error:
cannot convert from 'std::string' to 'LPSTR'
That's just because you should use
But this involves
const_cast in given case because
const char * returned by
c_str() can not be assigned to a non-constant
std::string str = "something"; LPSTR s = const_cast<char *>(str.c_str());
But you must be sure that lifetime of
str will be longer that that of
Another mention, if code compiles as Unicode-conformant, then types
std::string are incompatible. You should use
Important note: If you pass the resulting pointer
s from above to a function which tries to modify the data it is pointing to this will result in undefined behaviour. The only way to properly deal with it is to duplicate the string into a non-const buffer (e.g. via