Сборка по socket
Утилиты Windows
О типах Windows Как известно, в Си есть лишь три базовых типа (char, int, float/double) и еще несколько их вариаций с модификаторами signed/unsigned, short/long. Microsoft описывает в Win32 API свои простые типы: typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned int UINT; typedef int INT; typedef long BOOL; #define FALSE 0 #define TRUE 1 typedef long LONG; typedef unsigned long DWORD; typedef void *LPVOID; typedef char CHAR; typedef CHAR *LPSTR; typedef const CHAR *LPCSTR; Кроме перечисленных простых типов, практически ни один вызов Win32 API не обходится без дескрипторов. Такая переменная представляет собой указатель на некоторую системную структуру или индекс в некоторой системной таблице. typedef void *HANDLE; /* абстрактный дескриптор (например, файла) */ typedef void *HMODULE; /* дескриптор модуля */ typedef void *HINSTANCE; /* дескриптор экземпляра программы */ typedef void *HKEY; /* дескриптор ключа в реестре */ typedef void *HGDIOBJ; /* дескриптор графического примитива (перо, шрифт, кисть, палитра,...) */ typedef void *HWND; /* дескриптор окна */ typedef void *HMENU; /* дескриптор меню */ typedef void *HICON; /* дескриптор иконки */ typedef void *HBITMAP; /* дескриптор картинки */ typedef void *HFONT; /* дескриптор шрифта */ Очень часто вместо конкретного дескриптора допустимо передавать значение NULL. В стандартных версиях Си для функций используются два варианта соглашения о передаче параметров: соглашение языка Си (параметры функции помещаются в стек в порядке обратном их описанию, очистку стека производит вызывающая процедура) и соглашение языка Паскаль (параметры функции помещаются в стек в (прямом) порядке их описания, очистку стека производит вызываемая процедура). Для этих соглашений использовались, соответственно, модификаторы cdecl и pascal. При описании функций Win32 API используется модификатор WINAPI, а для описания пользовательских функций обратного вызова - модификатор CALLBACK. Оба этих модификатора являются переопределением специального модификатора _stdcall, соответствующего соглашению о передаче параметров, использующегося исключительно в Win32 API, - Standard Calling Convention (параметры функции помещаются в стек в порядке обратном их описанию, очистку стека производит вызываемая процедура).