Ngoài ra, bạn có thể muốn xem xét sử dụng TCHAR
suốt ... Nếu tôi đúng, ý tưởng sẽ là một cái gì đó như thế này:
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(), ...);
Lưu ý rằng chúng tôi sử dụng CreateProcess
thay vì CreateProcessW
hoặc CreateProcessA
. Ý tưởng là nếu UNICODE
được xác định, sau đó TCHAR
là typedef
ed để WCHAR
và CreateProcess
là #define
d là CreateProcessW
, mà chấp nhận một LPWSTR
; nhưng nếu không xác định được UNICODE
thì TCHAR
sẽ trở thành char
và CreateProcess
trở thành CreateProcessA
, chấp nhận LPSTR
. Nhưng tôi có thể không có các chi tiết ngay tại đây ... công cụ này dường như hơi không cần thiết phức tạp :(
http://stackoverflow.com/questions/27220/how-to-convert-stdstring-to-lpcwstr-in-c-unicode –
@ArsenMkrt: câu hỏi này rộng hơn cái bạn đề cập đến. – xtofl