


Visual C++ подключения библиотеки "windows.h"
Когда в консольных приложения подключаюбиблиотеку "windows.h" и работаю с winapi функциями, то все работает как надо.
То когда тоже самое делаю на Windows Form, например подключаю
#include "windows.h"
...
и вызываю например SendMessage, то выдает много ошибок.
Я в книжке вижел пример, там перед тем как использовать winapi функцию делаю так:
[DllImportAttribute("user32.dll")]
static int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
почему все так?
почему не работает обычное подключение библиотеки?
Получается для каждой функции и процедуры надо его определить?
Потому что Windows Forms - это .Net, там куча дополнительных приколов и заморочек. Кури мануалы.
Виртуальные библиотеки не надо возвращать книги
"почему не работает обычное подключение библиотеки?"
1) Файл Windows.h нужно добавить во внешние зависимости проекта.
Меню Проект - Добавить - Существующий элемент - C:\Program Files\Microsoft SDKs\...версия_винды...\Includes\Windows.h
2) #include <windows.h> нужно добавить в stdafx.h
3) Туда же - #pragma comment(lib, "user32.lib") - для вызова функций из user32.dll
По поводу первого пункта, есть сомнения, что проект будет компилироваться на виндах других версий, ведь той папки там может не оказаться.
Лучше этот файл - а также включенные в него WinUser, WinGdi и т.д. - распространять вместе с исходником и подключать соответственно.
"почему не работает обычное подключение библиотеки?"
Windows.h - не библиотека, а заголовочный файл.
В нём библиотека user32.dll тоже подключена похожим образом, можете сами посмотреть.