возвращающих FARPROC, вам нужно приводить типы указателей
функции, например:
BOOL CALLBACK DlgProc(HWND hwnd, UINT msg,
WPARAM wParam,
LPARAM lParam);
DLGPROC lpfnDlg;
lpfnDlg=(DLGPROC)MakeProcInstance(DlgProc, hinst);
...
FreeProcInstance((FARPROC)lpfnDlg);
ядра, осуществляющие управление модулями, обычно используют HINSTANCE, но некоторые API возвращают или воспринимают
только HMODULE.
WINDOWS.H, они могут быть изменены, и ваши описания могут
оказаться устаревшими. Удалите локальные описания.
приводиться к LOCALHANDLE или GLOBALHADLE.
SendDlgItemMsg или любых других функций, которые возвращают LRESULT или LONG к какому-либо описателю вы должны сначала привести результат к UINT:
HBRUSH hbr;
hbr = (HBRUSH)(UINR)
SendMessage(hwnd WM_CTLCOLOR, ..., ...);
идентификатора. В этом случае вы должны привести тип к
HMENU:
HWND hwmd;
int id;
hwnd = CreateWindow("Button", "Ok", BS_PUSBUTTON,
x, y, cx, cy, hwndParent,
(HMENU)id, // здесь требуется приведение типа
hinst, NULL);
FAR*) следует возможно скорее присваивать переменным. Избегайте использовать их в своих программах, когда тип значения известен. Это минимизирует число потенциально небезопасных и непереносимых в 32-разрядный режим преобразований типов. Макрокоманды API и механизмы обработки сообщений, предусмотренные в windowsx.h, будут выполнять практически всю упаковку и распаковку этих типов данных способом, обеспечивающим переносимость в 32-разрядный режим.
компилятора, которые вы можете обнаружить при переходе к
STRICT.