Составители:
он должен указывать на завершающийся нулем блок строк, каждая из которых за-
вершается нулем (аналогично DOS);
lpCurrentDirectory - указатель на строку, содержащую полное имя текущего каталога по-
рожденного процесса. Если этот параметр равен NULL, то порожденный процесс
наследует каталог родителя;
lpStartupInfo - указатель на структуру STARTUPINFO, которая определяет параметры
главного окна порожденного процесса;
lpProcessInformation - указатель на структуру, которая будет заполнена информацией о
порожденном процессе после возврата из функции.
Пример: программа, запускающая Microsoft Word
#include <windows.h>
#include <conio.h>
#include <stdio.h>
main()
{
PROCESS_INFORMATION pi ;
STARTUPINFO si ;
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() - создает новый поток в адресном пространстве процесса.
Формат функции [8]:
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;
65
он должен указывать на завершающийся нулем блок строк, каждая из которых за-
вершается нулем (аналогично DOS);
lpCurrentDirectory - указатель на строку, содержащую полное имя текущего каталога по-
рожденного процесса. Если этот параметр равен NULL, то порожденный процесс
наследует каталог родителя;
lpStartupInfo - указатель на структуру STARTUPINFO, которая определяет параметры
главного окна порожденного процесса;
lpProcessInformation - указатель на структуру, которая будет заполнена информацией о
порожденном процессе после возврата из функции.
Пример: программа, запускающая Microsoft Word
#include
#include
#include
main()
{
PROCESS_INFORMATION pi ;
STARTUPINFO si ;
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() - создает новый поток в адресном пространстве процесса.
Формат функции [8]:
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;
65
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »
