|
Модератор
|
|||||||||||||||||||||
Вызов любых функций по указателю17.04.2014, 19:11. Показов 14189. Ответов 57
Пока не работал форум, ковырялся в рантайме VB
.Иследуя функции VBA6 придумал способ вызова функций по указателю. Все просто. Объявляем прототип функции (пустую функцию), где дополнительно первым параметром будет передаваться адрес функции. Далее пропатчиваем его, таким образом чтобы он перекидывал нас по адресу заданному первым параметром. Таким образом можно вызывать функции в стандартных модулях, модулях класса, формы, API-функции (например полученные через LoadLibrary и GetProcAddress). Одно замечание, пока не выяснил причину, желательно запускать проект через Ctrl+F5, т.к. иногда может не работать указатель или же вообще происходить вылет. А так работает и в IDE и в скомпилированном виде. Пример вызова по указателю обычных функций модуля. Кликните здесь для просмотра всего текста
Вызов метода класса (как вычислить адреса напишу позже). Кликните здесь для просмотра всего текста
Вызов API функций: Кликните здесь для просмотра всего текста
5
|
|||||||||||||||||||||
| 17.04.2014, 19:11 | |
|
Ответы с готовыми решениями:
57
Вызов функции по указателю с параметрами Вызов функции по указателю из класса |
|
|
|
| 19.04.2014, 00:48 | |
|
Полезная программа ...
![]() молодец !
0
|
|
|
Модератор
4361 / 3431 / 512
Регистрация: 27.01.2014
Сообщений: 6,259
|
||||||
| 19.04.2014, 01:16 | ||||||
|
The trick,
0
|
||||||
|
|
|
| 19.04.2014, 01:25 | |
|
это синонимы
тоесть два разных слова имеющие один смысл
1
|
|
|
Модератор
|
||||||
| 25.04.2014, 03:53 [ТС] | ||||||
Сообщение было отмечено Catstail как решение
Решение
Как и обещал
![]() Просмотр классов, интерфейсов, типов, перечислений, модулей, объединений для ocx, dll, tlb.
2
|
||||||
|
Модератор
4361 / 3431 / 512
Регистрация: 27.01.2014
Сообщений: 6,259
|
|
| 25.04.2014, 11:58 | |
|
The trick, круто!
0
|
|
|
|
|||||||
| 25.04.2014, 15:45 | |||||||
![]() Добавлено через 1 минуту Теперь обязательно включу в свою работу ! Добавлено через 14 минут Эксешник работает, его уже в принципе можно использовать как отдельное приложение но вот проект не запускается ругань на это ...
как она правильно называеться чтоб ее подключить через браузер компонентов ?
0
|
|||||||
|
|
|
| 25.04.2014, 15:59 | |
|
сейчас постараюсь сам разобраться ...
я тебе лог скину в личку ... Добавлено через 3 минуты Вобщем пишет что и сам компонент ошибочен... который рассположен на форме попробую его подменить и переименовать под твой
0
|
|
|
|
||
| 25.04.2014, 16:03 | ||
его в сохраненной копии старой винды...
0
|
||
|
|
|
| 25.04.2014, 16:07 | |
|
0
|
|
|
|
|
| 25.04.2014, 16:28 | |
|
Проект работает ! ✰
![]() Добавлено через 1 минуту Я заново пере-извлек из архива и сразу подключил Microsoft Windows Common Controls 5.0 и перезапустил . Добавлено через 3 минуты наверное тебе не надо было его указывать в проекте явно ... а создавать на месте .. в инициализации (ну это только совет) Добавлено через 4 минуты Анатолий ! Спасибо тебе за твой труд ! Добавлено через 6 минут Пойду стучаться к модераторам чтоб они тебе поставили это лучшим ответом !
1
|
|
|
|
|
| 25.04.2014, 21:31 | |
|
Теперь я берегу этот архив как ценный бриллиант
но дело еще вот а чем.... почему не отображаются аргументы в функциях и свойствах если и такое можно будет сделать то вообще можно отказаться от среды IDE или сделать её посредником своей среды разоаботки
0
|
|
|
|
|
| 25.04.2014, 22:13 | |
|
Тоже как-то с первого раза не получилось.
Распаковал заново. Скопировал в папку с проектом файл c:\Windows\SysWOW64\COMCTL32.OCX Указал в References и переоткрыл проект. Все запустилось. Спасибо, The trick, шикарно показывает. Скажи, пожалуйста, ошибка "error loading dll" (Err = 48), здесь: Visual Basic Set locLib = LoadTypeLibEx(Path, REGKIND_NONE)Можно ли доработать программу, чтобы вначале списка еще и показывала список импортируемых/экспортируемых API? Было бы вообще замечательно.
1
|
|
|
|
|
| 25.04.2014, 22:42 | |
|
Тоесть если все будет доработанно то я постараюсь сделать
к твоему проекту хорошую рецензию, отпишу во всех подробностях зачем нужна эта программа и что она умеет делать, а Dragokas разместит в закрепленной теме (..может быть) у нас этот продукт потом даже иностранцы будут скачивать ... )))
0
|
|
| 25.04.2014, 22:42 | |
|
Вызов функции по указателю со смещением
Вызов функции по указателю, расположенному в структуре Вызов виртуальной функции по нулевому указателю Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача
Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
Сигнатура
func Fetch(urls string, maxConcurrent int) Result
Пример
urls :=. . .
|
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition)
Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
|
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|