Además, es posible que desee considerar el uso de TCHAR
largo ... Si estoy en lo cierto, la idea sería algo como esto:
typedef std::basic_string<TCHAR> tstring
// Make any methods you control return tstring values. Thus, you could write:
tstring command = obj.getInstallationPath();
CreateProcess(x, command.c_str(), ...);
en cuenta que utilizamos en lugar de CreateProcess
CreateProcessW
o CreateProcessA
. La idea es que si se define UNICODE
, entonces TCHAR
es typedef
ed a WCHAR
y CreateProcess
es #define
d ser CreateProcessW
, que acepta un LPWSTR
; pero si UNICODE
no está definido, entonces TCHAR
se convierte en char
, y CreateProcess
se convierte en CreateProcessA
, que acepta LPSTR
. Pero podría no tener los detalles aquí ... esto parece algo innecesariamente complicado :(
http://stackoverflow.com/questions/27220/how-to-convert-stdstring-to-lpcwstr-in-c-unicode –
@ArsenMkrt: Esta pregunta es más ancho que el que te refieres. – xtofl