Каково различие между CreateProcess и CreateProcessA?

каково различие между CreateProcess и CreateProcessA, также есть ли какие-либо альтернативы им в VC ++ 2008?

У меня есть также проблема, что я использую функцию CreateProcessA, это работает хорошо в одной системе, но перестало работать в других системах.

Также, когда я использую CreateProcess, я добираюсь, ошибка не может преобразовать 2 параметра от 'CHAR[40]' до 'LPWSTR', я нахожусь в unicode режиме

5
задан Kate Gregory 17 June 2010 в 12:21
поделиться

2 ответа

Во-первых, CreateProcess - это макрос, который переключается между CreateProcessA и CreateProcessW, которые принимают строки в ANSI или Unicode соответственно. Это зависит от настроек сборки вашего проекта (свойства проекта набора символов), Unicode или Multi-Byte. Как правило, вы хотите, чтобы все было в Unicode, поскольку это допускает глобализацию и добавляет возможность разрешить больше поддерживаемых языков.

Жалоба на преобразование из char в LPCWSTR показывает, что ожидается тип WSTR, или широкая строка, или строка Unicode. Обходной путь - объявить ваши символы с помощью макроса _T ("blahblah").

8
ответ дан 18 December 2019 в 16:36
поделиться

CreateProcess идентичен либо CreateProcessA («ANSI»), либо CreateProcessW («Широкие символы»), в зависимости от того, компилируете ли вы код без или с включенной опцией юникода.

Разница в том, должна ли передаваемая в качестве параметра строка быть строкой ANSI (8-битный символ) или Unicode (16-битный символ).


Существуют также альтернативы, например ShellExecuteEx .

4
ответ дан 18 December 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: