|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.07.2012, 14:52 | #1 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
DLL и структуры
Как экспортировать структуру в DLL это понятно:
Код:
Загрузка DLL явная.
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
19.07.2012, 16:13 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Под явной загрузке я понимаю речь идет о LoadLibrary()? В таком случае надо будет експротировать не структуру а функцию, которая будет возрващать указатель на екземпляр структуры.
Делать dllexport описания структуры смысла нет. Можно попробовать сделать dllexport переменной такого типа (в принципе так и делается) и потом попробовать через GetProcAddress() получить адрес - эдакая GetVarAddress получится. Не знаю сработает или нет, теоретически должно, на практике я так никогда не делал. |
19.07.2012, 19:35 | #3 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Да я что то все равно не догоняю.
DLL Код:
Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
19.07.2012, 20:39 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Думаю так:
Код:
Код:
Код:
I'm learning to live...
|
19.07.2012, 20:54 | #5 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
как обычно с помощью GetProcAdress()
|
19.07.2012, 22:01 | #6 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Неее пишет что тип неразрешенные внешний символ get();
Вот код: Код:
Код:
Код:
error LNK2019: ссылка на неразрешенный внешний символ "public: int __thiscall Test::get(void)" (?get@Test@@QAEHXZ) в функции _main C:\Documents and Settings\Admin\Мои документы\Visual Studio 2010\Projects\TestStr\Main\Main.obj Main
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
19.07.2012, 22:19 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а методы кто будет экспортировать?
и при динамической линковке без вирт методов поидее не запашет. ИМХО. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
19.07.2012, 22:21 | #8 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
а на примере можно. Если не сложно
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
19.07.2012, 23:45 | #9 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Цитата:
|
|
20.07.2012, 09:53 | #10 | ||
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Цитата:
Цитата:
Код:
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Debugger Kernel BORDBK160.DLL or BORDBK160N.DLL is missing or not registered. | Человек_Борща | Общие вопросы Delphi | 0 | 15.07.2012 14:01 |
Написание программ (древовидные структуры, структуры неспециального вида и т.д.) | Green Gin | Фриланс | 2 | 27.04.2012 15:26 |
Управляющие структуры. Программирование алгоритмов разветвляющейся структуры. | Лёнка | Компоненты Delphi | 1 | 23.04.2012 15:03 |
Ошибка при выхове функций Bass.dll из другой DLL | SalasAndriy | Общие вопросы Delphi | 7 | 21.10.2009 23:36 |