Основы программирования в Win32API. Марапулец Ю.В. - 22 стр.

UptoLike

Составители: 

ZeroMemory( &si, sizeof(si));
si.cb = sizeof( si );
printf( "Press any key to start WinWord -- " );
getch();
CreateProcess(NULL, "WinWord", NULL, NULL, FALSE, 0,
NULL, NULL, &si, &pi);
return 0;
}…
Функция CreateThread()создает новый поток в адресном пространстве
процесса. Формат функции:
HANDLE CreateThread
(LPSECURITY_ATTRIBUTES lpThreadAttributes,
// атрибуты защиты потока
DWORD dwStackSize, // размер стека в байтах
LPTHREAD_START_ROUTINE lpStartAddress,
//указатель на функцию потока
LPVOID lpParameter, // аргумент, передаваемый в функцию потока
BDWORD dwCreationFlags, // флаги управления созданием потока
LPDWORD lpThreadId,
// область памяти для возвращения идентификатора потока);…
Функция возвращает описатель порожденного потока. Параметры:
lpThreadAttributes – указатель на структуру, описывающую параметры
защиты потока; если параметру присвоено значение NULL, то устанавливают-
ся атрибуты «по умолчанию»;
dwStackSize – устанавливает размер стека, который отводится потоку; ес-
ли параметр равен нулю, то устанавливается стек, равный стеку первичного
потока;
lpStartAddress – адрес функции, которую будет исполнять поток; функция
имеет один 32-битный аргумент и возвращает 32-битное значение;
lpParameter – параметр, передаваемый в функцию, которую будет испол-
нять поток;
dwCreationFlags – дополнительный флаг, который управляет созданием
потока; если этот параметр равен CREATE_SUSPENDED, то поток после по-
рождения не запускается на исполнение до вызова функции ResumeThread;
lpThreadId – указатель на 32-битную переменную, которой будет при-
своено значение уникального идентификатора потока.
Рассмотрим пример на использование данной функции:
// программа, порождающая поток
#include < stdio.h >
#include < conio.h >
#include < windows.h >
DWORD WINAPI Output(LPVOID Param)
{
22
     ZeroMemory( &si, sizeof(si));
     si.cb = sizeof( si );
     printf( "Press any key to start WinWord -- " );
     getch();
     CreateProcess(NULL, "WinWord", NULL, NULL, FALSE, 0,
                           NULL, NULL, &si, &pi);
     return 0;
}…
    Функция CreateThread() – создает новый поток в адресном пространстве
процесса. Формат функции:
HANDLE CreateThread
      (LPSECURITY_ATTRIBUTES lpThreadAttributes,
      // атрибуты защиты потока
      DWORD dwStackSize,                 // размер стека в байтах
      LPTHREAD_START_ROUTINE lpStartAddress,
      //указатель на функцию потока
      LPVOID lpParameter, // аргумент, передаваемый в функцию потока
      BDWORD dwCreationFlags, // флаги управления созданием потока
      LPDWORD lpThreadId,
      // область памяти для возвращения идентификатора потока);…
     Функция возвращает описатель порожденного потока. Параметры:
     lpThreadAttributes – указатель на структуру, описывающую параметры
защиты потока; если параметру присвоено значение NULL, то устанавливают-
ся атрибуты «по умолчанию»;
     dwStackSize – устанавливает размер стека, который отводится потоку; ес-
ли параметр равен нулю, то устанавливается стек, равный стеку первичного
потока;
     lpStartAddress – адрес функции, которую будет исполнять поток; функция
имеет один 32-битный аргумент и возвращает 32-битное значение;
     lpParameter – параметр, передаваемый в функцию, которую будет испол-
нять поток;
     dwCreationFlags – дополнительный флаг, который управляет созданием
потока; если этот параметр равен CREATE_SUSPENDED, то поток после по-
рождения не запускается на исполнение до вызова функции ResumeThread;
     lpThreadId – указатель на 32-битную переменную, которой будет при-
своено значение уникального идентификатора потока.
     Рассмотрим пример на использование данной функции:
     // программа, порождающая поток
     #include < stdio.h >
     #include < conio.h >
     #include < windows.h >
     DWORD WINAPI Output(LPVOID Param)
     {

                                    22