Под "новинкой в программировании на Win32 C ++" я предполагаю, что вы имеете в виду, что у вас нет существующей большой программы, использующей строки "ANSI", которые вам нужно поддерживать.Если так, то почему вы хотите создать версию "ANSI"?Просто сделайте все с wchar_t
.
vector<wchar_t> str2(FullPathToExe.begin(), FullPathToExe.end());
str2.push_back(L'\0'); // Note the prefix.
if (!CreateProcessW(NULL, // Note the W; explicit is better than implicit.
&str2[0],
NULL,
NULL,
TRUE,
0,
NULL,
NULL,
&si,
&pi))
Если вам нужно работать с многобайтовыми строками (например, для чтения файлов или для работы со сторонними библиотеками, которые используют char
вместо wchar_t
), затем преобразуйте их, используя WideCharToMultiByte
и MultiByteToWideChar
.