|
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
|
Как импортировать классы из dll (на С++)?17.03.2021, 19:32. Показов 4144. Ответов 9
Метки нет (Все метки)
Здравствуйте. Какие есть варианты импорта классов из dll? Сама dll написана на С++. Возможности изменить исходники нет. Судя по информации, полученной из dumpbin+undname, импортируются только методы классов, прямого импорта классов нет.
0
|
|
| 17.03.2021, 19:32 | |
|
Ответы с готовыми решениями:
9
Как импортировать классы в Android Studio?
Можно ли как-нибудь импортировать классы C# в pascal abc? |
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 18.03.2021, 10:42 | ||
|
Классы всегда в С++ импортируются методами, потому что от классов ничего больше на рантайме не остается. С++ статически типизированный язык. Добавлено через 4 минуты Насколько я понял вопрос, заголовочных файлов у вас тоже нет? Соответственно вы не знаете какие у классов поля? Ну что тут сказать - восстанавливать эту информацию можно только вручную, анализируя листинг дизассемблера. И если в этих классах не применена какая-нибудь техника для упрощения бинарной совместимости (например PIMPL), то можно только вам посочувствовать.
0
|
||
|
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
||
| 18.03.2021, 11:50 [ТС] | ||
|
Можно ли, например, поступить следующим образом: 1. Получить указатель на конструктор класса из dll 2. Выделить память под будущий экземпляр класса 3. Проинициализировать выделенную память, вызвав конструктор 4. Использовать все методы созданного экземпляра класса Пытался так сделать, но не знаю, как обозначить указатель на конструктор, если последний ничего не возвращает.
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 18.03.2021, 12:11 | |
|
Dancing_god, я еще в прошлый раз хотел задать вопрос: зачем вообще динамически загружать эту библиотеку? Пусть линковщик занимается связыванием. Куча проблем сразу решится.
0
|
|
|
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
||
| 18.03.2021, 12:23 [ТС] | ||
|
Т.е. по сути надо написать заголовочный файл для библиотеки, включить его в основной файл на С++, а компилятору указать, что используется статическая библиотека? И тогда можно будет импортировать из .lib также, как если бы это был просто файл формата .cpp.
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||
| 18.03.2021, 12:31 | |||
|
Dancing_god, такой lib, идущий комплектом к dll, называется "библиотекой импорта". Ее можно сделать используя стандартные средства MS (я не говорю сейчас про другие компиляторы, т.к. вы все равно не сможете использовать такую DLL с классами, например, из MinGW, из-за различий в ABI. То, что DLL именно для MS-компилятора, было видно по name mangling`у).
https://docs.microsoft.com/ru-... w=msvc-160 https://docs.microsoft.com/ru-... w=msvc-160 Добавлено через 2 минуты Да, отвечаю на этот ваш вопрос
0
|
|||
|
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
||
| 18.03.2021, 14:25 [ТС] | ||
|
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 18.03.2021, 14:32 | ||
|
0
|
||
|
15 / 2 / 1
Регистрация: 18.09.2015
Сообщений: 227
|
||||||||||||||||||
| 19.03.2021, 18:21 [ТС] | ||||||||||||||||||
|
Странно, при компиляции возникают ошибки в ws2def.h. Пишет, что требуется идентификатор:
Добавлено через 7 минут
0
|
||||||||||||||||||
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,682
|
|
| 20.03.2021, 13:18 | |
|
0
|
|
| 20.03.2021, 13:18 | |
|
Помогаю со студенческими работами здесь
10
Как импортировать стороннюю DLL в программу? Как импортировать переменную из exe в dll? Как импортировать в проект DLL PublicKeyToken Как импортировать и экспортировать из dll класс? Как импортировать DLL файл игры в программу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|