Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105

EnumWindows - ошибка

02.07.2008, 07:07. Показов 6223. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ловлю окна функцией EnumWindows для дальнейшей обработки

Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
BOOL CALLBACK MyEnum(HWND hwnd,LPARAM lParam){
 
        return TRUE;
}
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        HWND hWnd = FindWindow(NULL, "Áåçûìÿííûé - Áëîêíîò");
        LPARAM lParam = 1;
        EnumWindows(MyEnum(hWnd, lParam), 1);
}
Вылезает ошибка:
[C++ Error] Unit1.cpp(60): E2034 Cannot convert 'int' to 'int (__stdcall *)()'
[C++ Error] Unit1.cpp(60): E2342 Type mismatch in parameter 'lpEnumFunc' (wanted 'int (__stdcall *)()', got 'int')
Что именно я написал не так? Заранее спс...

Добавлено через 2 минуты
P.S. на FindWindow не обращайте внимания.. кириллица из билдера некорректно скопировалась, не заметил...

P.P.S У меня не работает правка))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.07.2008, 07:07
Ответы с готовыми решениями:

EnumWindows - ошибка в коде
Нашел вот интернете такой код, немного подправил его, а то куча ошибок сыпалось: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE...

Ошибка "Variable required" при попытке использования EnumWindows
Вот код. Ошибка Variable required. Подскажите, в чем проблема. Заранее спасибо procedure TForm1.Button1Click(Sender: TObject); ...

EnumWindows
Мне нужно получить дескриптор окна в dll. я использую функцию EnumWindows, в которой меняю обработчик событий приложения на свой MyWndProc....

7
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
02.07.2008, 09:54
ну если верить хелпу, то в enumwindows нужно передавать WNDENUMPROC lpEnumFunc, а ты булевую переменную возвращаешь своей функцией...
0
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
04.07.2008, 16:13  [ТС]
Такс.. спасибо.. одну строку ошибки убрал... но есть еще одна строка
вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
WNDENUMPROC CALLBACK MyEnum(HWND hwnd,LPARAM lParam){
 
        return TRUE;
}
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        HWND hWnd = FindWindow(NULL, "Безымянный - Блокнот");
        LPARAM lParam = 1;
        EnumWindows(MyEnum(hWnd, lParam), 1);
}
вот ошибка:
[C++ Error] Unit1.cpp(53): E2034 Cannot convert 'int' to 'int (__stdcall *)()'
0
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
05.07.2008, 11:33  [ТС]
=) че делать?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
05.07.2008, 14:31
Code
1
EnumWindows((WNDENUMPROC)MyEnum, 1);
0
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
06.07.2008, 03:40  [ТС]
О, спс помогло)

Добавлено через 34 минуты
Эм, только вот проблема появилась другая...

при запуске функции (в моем случае при нажатии на кнопку) вылетает exception

вот скрин: http://img77.imageshack.us/img... iongj1.jpg

Что касабельно кода, вот:
C++
1
2
3
4
5
6
7
8
9
10
11
BOOL CALLBACK MyEnum(HWND hwnd,LPARAM lParam){
 
        return TRUE;
}
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        HWND hWnd = FindWindow("TForm1", NULL);
        LPARAM lParam = 1;
        EnumWindows((WNDENUMPROC)MyEnum(hWnd, lParam), 1);
} // !!!
Если просто запустить прогу из билдера (F9), то при выполнении функции курсор потом кидает на помеченную строку...

Если выполнять момент программы пошагово, то вылитает exception тут:
C++
1
2
3
4
5
6
7
8
9
10
11
BOOL CALLBACK MyEnum(HWND hwnd,LPARAM lParam){
 
        return TRUE;
} // !!!
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        HWND hWnd = FindWindow("TForm1", NULL);
        LPARAM lParam = 1;
        EnumWindows((WNDENUMPROC)MyEnum(hWnd, lParam), 1);
}
Прошу помочь)

Добавлено через 1 минуту
Судя по всему почему то не может вернуть TRUE функции EnumWindows()... только вот как и куда не знаю)
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
06.07.2008, 03:58
В EnumWindows передается адрес функции, а не функция с параметрами. На то она и CALLBACK, чтобы ей вызывающая все передала делаем выводы. А вообще, внимательно помотрите, как работает EnumWindows. Вы не до конца поняли, что она делает, как я вижу по вашему коду, в котором вы хотите хэндл найденного окна засунуть в CALLBACK функцию...

P. S. если совсем туго, посмотрите, что я Вам написал, и как в вашем коде...
0
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
06.07.2008, 16:41  [ТС]
Все разобрался.. всем спс.. тема закрыта)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2008, 16:41
Помогаю со студенческими работами здесь

EnumWindows List
Есть вот такой код, но он не работает private static extern int EnumWindows(EnumWindowsCallbackDelegate callback,...

Функция EnumWindows()
Добрый день. У меня возникла такая проблема: нужна разработать две программы , одна с которых получает перечень всех заголовков окон в...

Как корректно вызвать EnumWindows в классе?
собственно, сам вопрос уже описан в теме, но вот к примеру, есть у меня заголовочный файл в котором я описал класс ...

EnumWindows перебор HWND до выполнения условий
Рассмотрим ситуацию на примере блокнота. Как оно должно быть. Запускаем программу. Программа ждет появление блокнота с содержимым...

Вызов функции EnumWindows для класса
Добрый вечер уважаемые господа программисты. У меня есть цель - создать класс который будет делать определенные вещи. Я попытался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru