Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16

Не удаётся получить адрес функции, реализованной в dll

15.11.2020, 00:29. Показов 1637. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Хочу немного доработать CrazyKeys, транслитератор от Олега Вальберга.

Мне необходимо добавить Low Level Mouse Hook (по аналогии к Keyboard hook, который уже используется в коде).
Этим я смогу добавить новые способы активации (вкл/выкл) программы.

Вот эта строка возвращает 0, и я не могу разобраться почему:

C++
1
fMouseHookProc = ( TDF_MouseHookProcFunc )GetProcAddress(hModule, "LowLevelMouseProcFunc");
https://github.com/dragokas/Cr... er.cpp#L50

Помогите советом.

Перечень моих изменений: в этом коммите.

Спасибо.

PS. Код собран для компиляции через VS 2013 (по идее, в 2015 тоже соберётся; в 2019 точно нет).
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.11.2020, 00:29
Ответы с готовыми решениями:

Как получить адрес функции в DLL
Я пишу расширение для текстового редактора исходников от которого у меня нет. Суть в том что перед тем сохранить текст в файл он должен...

Как получить адрес функции в dll стороннего процесса?
Я подцепляюсь к чужому процессу, модифицирую память. Как рабочее пространство использую ненужную функцию в подгружаемой процессом dll. На...

Как получить адрес функции, возвращающей указатель на массив, из DLL?
В моем dll есть функция возвращающая указатель на массив указателей extern "C" _declspec(dllexport) float ** Calc(float...

10
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
15.11.2020, 02:32
Цитата Сообщение от Dragokas Посмотреть сообщение
Вот эта строка возвращает 0, и я не могу разобраться почему
А что GetLastError говорит?
GetProcAddress не работает только в том случае, если функция не определена в EXPORTS заявлении (.def), т.е. не экспортируемая.
В таких случаях функцию ищут в библиотеке по уникальной сигнатуре.

Выложите dll, проще будет подсказать.
2
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
15.11.2020, 07:46
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Цитата Сообщение от Dragokas Посмотреть сообщение
Мне необходимо добавить Low Level Mouse Hook (по аналогии к Keyboard hook, который уже используется в коде).
Во-первых, функция там называется LowLevelMouseProc
Во-вторых, надо прописать её в DllHook_dll.def
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.11.2020, 17:02  [ТС]
_lunar_, oleg-m1973, премного благодарен. Теперь всё отлично работает.
0
15.11.2020, 17:05

Не по теме:

Dragokas, вопрос не по теме. Как поживает ваш defender?

0
15.11.2020, 17:14  [ТС]

Не по теме:

Croessmah, если ты про Winlock, то помер ещё лет 7 назад, собственно как и сами винлоки, как класс.
Сейчас в свободное время работаю только над проектом HiJackThis и игровыми серверами под Linux и SourceMod.

0
16.11.2020, 09:04

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
если ты про Winlock
Да, про него. Создание комплексной утилиты противодействия вирусам семейства WinLocker (WiLD)

Спасибо. :)

0
16.11.2020, 11:31

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
в 2019 точно нет
Прекрасно компилится в VS2019 после ретаргета на актуальный Platform Toolset Visual Studio 2019 (v142) и удаления .h из #include <typeinfo.h>...

0
16.11.2020, 15:05  [ТС]

Не по теме:

Спасибо. Да, было бы неплохо иметь возможность открывать в VS 2019, хотя и терять совместимость с XP не хотелось бы.
Попробовал совет, typeinfo.h в моей студии нет, заменил инклюд на typeinfo без h, и выдрал из него лишние .h,
куча предупреждений, хрен с ними, но ещё осталась ошибка из .rc о том, что не найден файл afxres.h тыц

0
16.11.2020, 16:17

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
typeinfo.h в моей студии нет
Видимо какие-то компоненты не установлены. У меня всё есть C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.28.29515\include\typeinfo

Цитата Сообщение от Dragokas Посмотреть сообщение
но ещё осталась ошибка из .rc о том, что не найден файл afxres.h
Не установлены компоненты студии связанные с ATL/MFC (например C++ MFC for latest v142 build tools)

0
16.11.2020, 18:33  [ТС]

Не по теме:


О, благодарочка. Доустаналивал ATL (который не входит в стандатный набор по-умолчанию), и наконец-то собралось.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.11.2020, 18:33
Помогаю со студенческими работами здесь

Не удается получить ip-адрес
Всем здравствуйте. Принесли ноутбук ADVENT 6413. На нём отвалился разъём питания. припаял, заодно и установил Виндовс ХР.Поставил разные...

Получить имя и адрес DLL файла
Добрый день. Встала задача: 1. Получить имя и адрес DLL файла 2. Определить тип (managed/native) 3. Получить имя и параметры метода ...

GetProcAddress не может получить адрес ф-ии из dll
Осваиваю написание dll, GetProcAddress не может получить адрес ф-ии из моей dllки? Где может быть засада? В экспоре ф-я вроде должна быть…...

Задать адрес функции внутри DLL
Подскажите, пожалуйста, как сделать так, чтобы после сборки DLL нужная мне функция всегда была по одному адресу, например, 10001000, если...

Получить адрес функции
Хочу получить адрес функции asd (для примера) объявленной в классе class GraphicsScene : public QGraphicsScene { public: ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru