(application programming interface) – интерфейс прикладного программирования (набор программ, формирующих интерфейс между Вашим приложением и компьютером в целом: например, создание окон на экране, их перемещение и изменение, взаимодействие с «мышью», управление файлами, каталогами, памятью...).
- обязателен, т.к. содержит все необходимые включения базовых *.h-файлов, где в свою очередь находятся объявления и определения большинства функций SDK Windows, определены типы и структуры данных, макроподстановки, константы...
WINDEF.H - определение фундаментальных типов
WINBASE.H – базовый 32-разрядный программный интерфейс
WINGDI.H – интерфейс графических устройств
WINUSER.H – объявления из USER.EXE или ассоциированные с ним и некоторые другие.
– вызывает строгую проверку типов компилятором в Ваших программах. Рекомендуется, так как облегчает Ваш скорбный труд по отладке кода.
обязательна для каждого Windows-приложения - это «точка входа» приложения.
Прототип функции (находится в WINBASE.H):
int WINAPI WinMain(HINSTANCE hInst, //идентификатор приложения – является указателем // («адрес памяти», с которого загружается EXE-модуль)
HINSTANCE hPrevInsance, //в WIN32 не имеет смысла и равен NULL
LPSTR lpszCmdParam, //содержит любую информацию, передающуюся //из командной строки (не содержит имя текущего исполняемого //файла). Чтобы получить эту информацию, используйте функцию //GetCommandLine()
int nCmdShow); //как приложение должно появиться на экране
Возвращаемое значение – int. Если приложение завершается корректно (при получении WM_QUIT –сообщения), то WinMain должна вернуть wParam этого сообщения. Если функция заканчивается “аварийно” (до входа в цикл сообщений), то она должна вернуть ноль. Замечание: есть мнение, что Windows в действительности не проверяет возвращаемое значение, а предназначаются возвращаемые значения прежде всего для отладки или чтобы сделать Вашу программу более читабельной.
Ключевое слово WINAPI обозначает тип вызова функции– определено в WINDEF.H для WIN32-приложений как
#define WINAPI __stdcall (соглашение о вызове и порядке помещения параметров в стек)
Замечание 1: в былые времена для 16-разрядных приложений использовалось соглашение о вызовах FAR PASCAL, а для WIN32 - __stdcall (не подчиняется соглашениям о вызове cdecl и Pascal).
Замечание 2:вместо спецификатора WINAPI можно использовать спецификатор APIENTRY, который, в принципе, означает то же самое.
WinMain (если Вы действительно хотите создать Windows-приложение) должна содержать четыре секции:
– для того, чтобы зарегистрировать класс окна, следует объявить и заполнить структуру типа WNDCLASS и передать эту структуру в виде параметра функции RegistterClass()
static char szAppName[] = “Мое приложение”;
WNDCLASS w; //объявление структуры атрибутов класса окна
memset( &w, 0, sizeof(WNDCLASS) ); //рекомендуется обнулить все байты структуры //(соответственно обнуляются все поля), для того, чтобы все не //заданные Вами явно поля оказались нулевыми – на нулевые поля //фунция создания окна отреагирует корректно, а на случайные //значения вряд ли
w.style = CS_HREDRAW | CS_VREDRAW; //обычно передаваемые стили окна – окно //перерисовывает, если меняется соответственно его горизонтальный //или вертикальный размер. Остальные стили – смотри Help
w.lpfnWndProc = WndProc; //имя Вашей оконной процедуры
w.hInstance = hInst; //дескриптор приложения, передаваемый функции WinMain
w.hIcon = LoadIcon(NULL, IDI_APPLICATION); //загружает стандартную иконку Windows
w.hCursor = LoadCursor(NULL, IDC_ARROW); // загружает стандартный курсор Windows
w.hbrBackground = GetStockObject (WHITE_BRUSH); //стандартный цвет фона окна
w.lpszClassName = szAppName;
if( RegisterClass(&w) == 0 ) return FALSE;
Функция LoadIcon() :
HICON LoadIcon( HINSTANCE hInstance, // handle of application instance
LPCTSTR lpIconName); // указывает на строку, содержащую //идентификатор ресурса пиктограммы загружает пиктограмму из: ресурса .EXE-файла, если параметр hInstance является дискриптором приложения (!=NULL) и стандартную иконку Windows, если hInstance ==NULL
Для стандартных пиктограмм:
IDI_APPLICATION – иконка по умолчанию.
IDI_ASTERISK – используется в информативных сообщениях
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.