2014-09-23 6 views
1

Мы знаем, что CreateProcessAPI используется в программе C для создания процесса (для запуска EXE и т. Д.).Эквивалент CreateProcess() в стандартном шаблоне библиотеки C++ (STL)

Я попытался изучить, если есть какой-либо способ на C++, используя STL (стандартная библиотека), что мы можем достичь того же.

Причина в том, что в API CreateProcess() нам нужно беспокоиться о различных типах liek LPTSTR (Unicode/MBCS и т. Д.).

Но если есть эквивалент C++ STL, который бы абстрагировал все эти детали, это было бы очень полезно.

+0

"STL" просто вводит в заблуждение здесь. Стандартная библиотека C++ выросла, включив в нее биты как из старых IO-потоков, библиотеки строк, STL, так и из последних библиотек Boost, а также некоторых собственных изобретений, а также стандартной библиотеки C99 по ссылке. – MSalters

ответ

1

No, CreateProcess Используется в Windows. Программы C используют system. Это доступно на C++ как std::system.

+0

Я просто пытаюсь понять вещи лучше. Итак, означает ли это, что system() [in C] и [std :: system in C++] внутренне вызывают callCreateProcess()? Чтобы дать аналогию с тем, что я искал, поскольку у нас есть много абстрагированных и простых в программировании стандартной библиотеки C++ (std), например (аналогия) ifstead of meddling с внутренними символами и т. Д. Мы используем строковые объекты (которые имеет абстрактную работу символа), есть ли у нас некоторый похожий API, открытый стандартной библиотекой C++, который может помочь в создании процесса()? – codeLover

+0

@codeLover: Или 'ShellExecute' или' CreateProcessEx' или, возможно, еще одна подобная функция. Нерешительные детали, как правило. Когда вы вызываете 'system', вы получаете новый процесс любым способом, который ваш поставщик компилятора считает подходящим. В случае Visual C++ это тоже Microsoft, поэтому они должны знать. – MSalters