powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++
13 сообщений из 13, страница 1 из 1
C++
    #33292914
kickdown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто может, помогите!
Не получается экспортировать класс из DLL - неявно получается, а
через LoadLibrary No.
...
Рейтинг: 0 / 0
C++
    #33293191
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю твою проблему проще всего решить, используя COM.
...
Рейтинг: 0 / 0
C++
    #33294117
kickdown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А. Широкову
Подскажи начинающему, please, каким образом.
Буду благодарен за любую инфу по теме
Я хочу свою DLL, содержащую классы, грузить явно.
...
Рейтинг: 0 / 0
C++
    #33294246
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понимаете, я не смогу объяснить на пальцах эту технологию. Ничего сложного в этой технологии нет (ваш класс всего лишь должен реализивывать по меньшей мере один интерфейс, а именно IUnknown), но даже для создания простейшего COM класса вы должны много чего понимать. Идеальным введением (на мой взляд) в тему является книга Дональда Бокса "Сущность технологии COM". Очень рекомендую.

Удачи!
...
Рейтинг: 0 / 0
C++
    #33294486
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и не использовать COM, самому сделать нечто подобное IUnknown.
А можно и технологическим путем пойти - использовать имена функций с mangling-ом. Только зачем- я не понимаю. Если нужно отложенную загрузку dll изобразить - линкер это и при статической компановке умеет делать. Сделаешь функцию пустую, типа _InitLibrary() вызовешь ее первой - библиотека загрузится.
...
Рейтинг: 0 / 0
C++
    #33294615
kickdown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За книгу большое мерси, уже читаю с увлечением
...
Рейтинг: 0 / 0
C++
    #33294918
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kickdownЗа книгу большое мерси, уже читаю с увлечением
Можна еще Д.Роджерсона "Inside COM", А.В..Коберниченко "Visual Studio 6. Искусство программирования" - сам не читал (достать негде), но в аннотации разрисовано все красиво (кстати, есть где-нить электронный вариант данной книженции ?)
...
Рейтинг: 0 / 0
C++
    #33296861
kickdown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2MasterZiv
с mangling ничего не выходит.
через GetProcAddress получаю адреса всех методов,
но объект не конструируется. Пробовал также делать
глобальную ф-цию, которая return указатель на объект-
один рез.

2Alex_VC
вам тоже большое мерси. Будем искать!
...
Рейтинг: 0 / 0
C++
    #33296945
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
C++
    #33296977
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kickdownчерез GetProcAddress получаю адреса всех методов,
но объект не конструируется.

Это как это ?
...
Рейтинг: 0 / 0
C++
    #33296985
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv kickdownчерез GetProcAddress получаю адреса всех методов,
но объект не конструируется.

Это как это ?
почему не конструируется ?,
если экспортировать функцию которая создает объекты то все прекрпсно конструируется
...
Рейтинг: 0 / 0
C++
    #33297244
kickdown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почитал я малость книгу "Дональд Бокс. Сущность технологии СОМ"
и снизошло на меня легкое озарение.
Всем большое спасибо!!!
...
Рейтинг: 0 / 0
C++
    #33341371
sever221mar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kickdown2MasterZiv
с mangling ничего не выходит.
через GetProcAddress получаю адреса всех методов,
но объект не конструируется.
Проблема в том, что линковщик при сборке библиотеки всем именам объектов(классов, функций, переменных) использует кривые имена, меняя тем самым, твои доморощенные.
Решается очень просто:
dumpbin'ом смотришь реальные имена, создаешь .def файл, меняя эти имена на любые, приемлимые для тебя.
Подключаешь его к проекту, и ВСЕ ОК!!!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]