Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учеб пособие по КР, СПО.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.72 Mб
Скачать

Продолжение прил. П2

Msg – сообщение, которое необходимо отправить;

wParam, lParam – дополнительные параметры.

9) Функция создания треда.

HANDLE CreateThread(LPSECURITY_ATTRIBUTES

lpThreadAttributes, SIZE_T dwStackSize,

LPTHREAD_START_ROUTINE lpStartAddress, LPVOID

lpParametr, DWORD dwCreationFlags, LPDWORD

lpThreadId)

lpThreadAttributes – указатель на атрибуты безопасности;

dwStackSize – размер стека треда в байтах;

lpStartAddress – указатель на адрес функции треда;

lpParametr – параметр передаваемый функции треда;

dwCreationFlags – дополнительный флаг управления созданием треда;

lpThreadId – идентификатор треда.

10) Функция установки приоритета треда.

BOOL SetThreadPriority(HANDLE hThread, int nPriority)

hThread – хендл треда;

nPriority – уровень приоритета треда.

11) Функция немедленного прерывания треда.

BOOL TerminateThread(HANDLE hThread, DWORD

dwExitCode)

hThread – хендл прерываемого треда;

dwExitCode – код выхода.

12) Функция, отправляющая определенное сообщение окну или окнам.

LRESULT SendMessage(HWND hWnd, UINT Msg,

WPARAM wParam, LPARAM lParam)

hWnd – хендл окна назначения;

Msg – отправляемое сообщение;

wParam, lParam – дополнительные параметры.

Продолжение прил. П2

13) Функция закрытия диалогового окна.

BOOL EndDialog(HWND hDlg, INT_PTR nResult)

hDlg – хендл диалогового окна;

nResult – возвращаемое значение.

14) Функция создания синхронизирующего объекта события.

HANDLE CreateEvent(LPSECURITY_ATTRIBUTES

lpEventAttributes, BOOL bManualReset, BOOL

bInitialState, LPCTSTR lpName)

lpEventAttributes – атрибуты безопасности;

bManualReset – состояние объекта события, устанавливаемое Windows автоматически выключено (false), или включено (true);

bInitialState - состояние объекта события при создании выключено (false), или включено (true);

lpName – указатель на строку, содержащую имя объекта события.

15) Функция обработки сообщений диалогового окна.

LRESULT CALLBACK DlgProc(HWND hDlg, UINT uMsg,

WPARAM wParam, LPARAM lParam)

hDlg – хендл диалогового окна;

uMsg – сообщение, посылаемое диалоговому окну;

wParam, lParam - дополнительные параметры.

16) Функция создания диалогового окна.

INT_PTR DialogBoxParam(HINSTANCE hInstance,

LPCTSTR lpTemplateName, HWND hWndParent,

DLGPROC lpDialogFunc, LPARAM dwInitParam)

hInstance – хендл приложения;

lpTemplateName – шаблон диалогового окна;

hWndParent – хендл окна, которому принадлежит диалог;

lpDialogFunc – указатель на процедуру обработки диалогового окна;

dwInitParam – определенное значение, передаваемое диалоговому окну.

Окончание прил. П2

17) Функция, вызываемая системой и являющаяся точкой входа в Windows-приложениях.

int WinMain(HINSTANCE hInstance, HINSTANCE

hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

hInstance – хендл текущего приложения;

hPrevInstance – хендл предыдущего приложения;

lpCmdLine – указатель на командную строку приложения;

nCmdShow – параметр, определяемый видимость окна.

18) Функция, загружающая иконку-ресурс.

HICON LoadIcon(HINSTANCE hInstance, LPCTSTR

lpIconName)

hInstance – хендл приложения;

lpIconName – имя строки или идентификатор ресурса.

19) Функция, помещающая строку и значения переменной в буфер.

int wsprintf(LPTSTR lpOut, LPCTSTR lpFmt, …)

lpOut – указатель на буфер, куда будет помещена строка и значение переменной;

lpFmt – строка, помещаемая в буфер;

Далее следуют выборочные параметры (в листинге примера это имя переменной).

20) Функция, возвращающая длину строки в байтах или символах.

int lstrlen(LPCTSTR lpString)

lpString – указатель на строку

Приложение П3

//Директивой препроцессора подключаются

//заголовочные файлы

#include <windows.h>

#include <math.h>

#include "main.h"

#include "resource.h"

//Объявление глобальных переменных

DWORD input_var[13]; // Массив входных переменных

HANDLE event_obj[6]; // Массив хендлов объектов //синхронизации

HANDLE hThread[4]; // Массив хендлов тредов

//Массив указателей на функции тредов

LPTHREAD_START_ROUTINE pThread[4] = { (LPTHREAD_START_ROUTINE)Thread1,

(LPTHREAD_START_ROUTINE)Thread2,

(LPTHREAD_START_ROUTINE)Thread3,

(LPTHREAD_START_ROUTINE)Thread4

};

//Хендл диалогового окна

HWND hMainDlg;

//Функция - первый тред

void Thread1() {

char buf[20];

//Функцией addstr в ListBox выводится текст (см.

//main.h)

addstr(#1: Starting thread ...);

addstr(#1: a = a + b ...);

//Ассемблерная вставка, для подсчета суммы a

//b

__asm {

mov eax, input_var[B]

add input_var[A], eax

}

addstr(#1: Set event S12 ...);

//Функция установки объекта события

SetEvent(event_obj[S12]);

addstr(#1: m = sqrt(m) ...);

input_var[M] = (DWORD)sqrt((double)input_var[M]);

addstr(#1: l = l - m ...);

input_var[L] -= input_var[M];