![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| imp |
|
|||
|
Unregistered |
пытаюсь скомпилировать пример из книжки Рихтера.Там есть функция :
// Sets the dialog box icons inline void chSETDLGICONS(HWND hwnd, int idi) { SendMessage(hwnd, WM_SETICON, TRUE, (LPARAM) LoadIcon((HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE), MAKEINTRESOURCE(idi))); SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM) LoadIcon((HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE), MAKEINTRESOURCE(idi))); } выдает ошибки : error C2065: 'GetWindowLongPtr' : undeclared identifier error C2065: 'GWLP_HINSTANCE' : undeclared identifier если попытаться скомпилировать Win32 Application : int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HINSTANCE hinst = (HINSTANCE) GetWindowLongPtr(); return 0; } теже ошибки. Вставка #include <Windows.h> ни чего не меняет.(Builder C++ видит GetWindowLongPtr и нормально компилит код с ней) Почему компилятор VC++ не видит GetWindowLongPtr ? |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Дело в версии Windows, для которой ты пишеш прогу. GetWindowLongPtr - это новая версия GetWindowLong. Можешь исправить GetWindowLongPtr на GetWindowLong и GWLP_HISTANCE на GWL_HISTANCE и должно заработать.
Вообще-то странно, но в VC++ 6.0 в winuser.h правда нет определения GetWindowLongPtr и SetWindowLongPtr. Тут дело в принципе в том, что этой функции на самом деле в Win32 нет и в winuser.h стоит, что если операционка 32-разрядная, то читая SetWindowLongPtr понимай SetWindowLong. Но то что в VC++6.0 эта функция вообще не определена, это странно. |
|||
|
||||
| imp |
|
|||
|
Unregistered |
да , GetWindowLong компайлер видит и не ругуется.
Странно в MSDN про эту особенность ничего не сказано , есть только: " To write code that is compatible with both 32-bit and 64-bit versions of Windows, use GetWindowLongPtr. " спасибо за помощь. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |