каково различие между CreateProcess и CreateProcessA, также есть ли какие-либо альтернативы им в VC ++ 2008?
У меня есть также проблема, что я использую функцию CreateProcessA, это работает хорошо в одной системе, но перестало работать в других системах.
Также, когда я использую CreateProcess, я добираюсь, ошибка не может преобразовать 2 параметра от 'CHAR[40]' до 'LPWSTR', я нахожусь в unicode режиме
Во-первых, CreateProcess - это макрос, который переключается между CreateProcessA и CreateProcessW, которые принимают строки в ANSI или Unicode соответственно. Это зависит от настроек сборки вашего проекта (свойства проекта набора символов), Unicode или Multi-Byte. Как правило, вы хотите, чтобы все было в Unicode, поскольку это допускает глобализацию и добавляет возможность разрешить больше поддерживаемых языков.
Жалоба на преобразование из char в LPCWSTR показывает, что ожидается тип WSTR, или широкая строка, или строка Unicode. Обходной путь - объявить ваши символы с помощью макроса _T ("blahblah").
CreateProcess
идентичен либо CreateProcessA
(«ANSI»), либо CreateProcessW
(«Широкие символы»), в зависимости от того, компилируете ли вы код без или с включенной опцией юникода.
Разница в том, должна ли передаваемая в качестве параметра строка быть строкой ANSI (8-битный символ) или Unicode (16-битный символ).
Существуют также альтернативы, например ShellExecuteEx
.