Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 182


Приложение тоже может создать процесс с главным потоком, исполь­зуя для этой цели функцию CreateProcessQ. Её прототип, находящийся в файле winbase.h, при первой встрече с ним внушает легкий ужас:

WINBASEAPI BOOL WINAPI CreateProcessA(LPCSTR IpApplicationName,

LPSTR IpCommandLinc,

LPSECURITY_ATTRroUTESlpProcessAttributes,

LPSECUR ITY_ATTRIBUTES IpThreadAttributes,

BOOL blnheritHandles,

DWORD dwCreationFlags,

LPVOID IpEnvironment,

LPCSTR IpCurrentDirectory,

LPSTARTUPINFOA IpStartupInfo,

LPPROCESSJNFORMATIONlpProcessInformation); WINBASEAPI BOOL WINAPI CreateProcessW(LPCWSTR IpApplicationName,

LPWSTR IpCommandLinc,

LPSECURITY_ATTRIBUTESlpProcessAttributes,

LPSECURITY_ATTR]BUTESlpTlireadAttributcs,

BOOL blnheritHandles,

DWORD dwCreationFlags,

LPVOID IpEnvironment,

LPCWSTR IpCurrentDirectory,

LPSTARTUPINFOW IpStartupInfo,

LPPROCESSJNFORMATIONlpProccssInformation);

#ifdcf UNICODE

#defme CrcateProccss CrcateProcessW

#else

#defme CreateProcess CreateProcessA tfendif/'IUNICODE

219

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

Я уже говорил, что процесс - это структура в памяти. Таким образом, в начале работы функция выделяет память для этой структуры, а потом выделяет память (виртуальную, естественно) для адресного пространства процесса. Если выделение памяти прошло без ошибок, в адресное про­странство процесса загружается код исполняемой программы и исполь­зуемых программой динамических библиотек. Только после этого созда­ется главный поток процесса. Если функции удастся произвести все эти действия без ошибок, то возвращаемое значение будет равно TRUE. FALSE явится индикатором того, что по каким-то причинам процесс не создан.

Перейдем к рассмотрению аргументов функции CreateProcessQ.

АРГУМЕНТЫ ФУНКЦИИ CREATEPROCESSQ

С моей точки зрения, взаимодействие первых двух аргументов не со­всем продумано.




Начало  Назад  Вперед



Книжный магазин