Вопрос № 53350: Здравствуйте! Винапи начал изучать недавно, по книге Румянцева. Один из примеров в ней не компилируется (в приложении), выбивает ошибку error C2664: 'DialogBoxParamA' : cannot convert parameter 4 from 'BOOL (__stdcall *)(HWND,UINT,UINT,WPARAM,LPARAM)...
Вопрос № 53.350
Здравствуйте! Винапи начал изучать недавно, по книге Румянцева. Один из примеров в ней не компилируется (в приложении), выбивает ошибку error C2664: 'DialogBoxParamA' : cannot convert parameter 4 from 'BOOL (__stdcall *)(HWND,UINT,UINT,WPARAM,LPARAM)' to 'DLGPROC'
Пробовал и изменять тип возвращаемого функцией значения с BOOL на INT_PTR, и явно приводить 4ый параметр к типу DLGPROC, ни в какую. В чем может быть проблема? Заранее спасибо!
ЗЫ: я пользуюсь Visual Studio 2005 Professional Edition, вполне возможно что в более старых версиях этот пример работал...
ЗЫ2: пример работы с функцией DialogBox() из 2005го мсдн тоже не хочет компилироваться...
Приложение:
Отправлен: 26.08.2006, 16:55
Вопрос задал: Vofka (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: estiGi
Здравствуйте, Vofka!
Судя по всему, как понимаю, проблема не в этом. Не надо нечего преобразовывать. Измени саму функцию, прототип:
INT_PTR CALLBACK ButtonsExampleDialogProc(HWND, UINT, UINT, WPARAM,LPARAM);
Ответ отправил: estiGi (статус: Студент)
Ответ отправлен: 26.08.2006, 17:27 Оценка за ответ: 1 Комментарий оценки: Спасибо, но я кажется написал, что пробовал изменять тип возвращаемого функцией значения на этот.
Отвечает: Яруллин Азат Рифкатович
Здравствуйте, Vofka!
Проблема из-за разных версий SDK.
Попробуйте следующее...
Удачи!
Приложение:
Ответ отправил: Яруллин Азат Рифкатович (статус: 9-ый класс)
Ответ отправлен: 26.08.2006, 17:31 Оценка за ответ: 4 Комментарий оценки: Спасибо. По идее этот вариант должен работать, я натыкался на него в инете... Но у меня не пашет, сообщение об ошибке выглядит гораздо страшнее :) Буду копать дальше...
Отвечает: Physicist
Здравствуйте, Vofka!
Не могу понять, откуда у Вас берется столько параметров у ButtonsExampleDialogProc. Вот как она должна выглядеть:
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 26.08.2006, 21:14 Оценка за ответ: 4 Комментарий оценки: Интересно, я и не заметил, что в прототипе и в самой функции типы параметров в этом примере отличаются. Странно, что на это компилятор не ругался. Исправил, теперь такая ошибка error LNK2019: unresolved external symbol __imp__InitCommonControls@0 referenced in function _WinMain@16 Что бы это значило?