Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
djamshud
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 1
#1

Обратная линковка - C++

23.11.2009, 23:18. Просмотров 620. Ответов 0
Метки нет (Все метки)

Доброго времени суток.

Интересует, как организовать сабж в windows. Пример (ниже опишу, что к чему):

***shared_header.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<stdio.h>
class sharedClass{
public:
sharedClass();
};
 
***plugin.cpp -> libplugin.dll
#include"shared_header.h"
extern "C"
void loader(){
printf("Plugin is loaded!\n");
new sharedClass;
}
 
***base.cpp -> base.exe
#include"shared_header.h"
sharedClass::sharedClass(){
printf("Shared class is loaded!\n");
}
 
int main(){
/*
Немного кода, который загрузит и вызовет функцию loader из libplugin.dll
*/
return 0;}
Т.е., что происходит. Говорим, что есть общий класс sharedClass. Хедер общий, реализация в base.exe. Загружаем библиотеку libplugin.dll и вытаскиваем из нее функцию. Видим
Plugin is loaded!
Shared class is loaded!

И это прекрасно работает... в линуксе. При линковке динамической библиотеки там достаточно определений классов и функций, а реализация подцепляется на лету, во время загрузки библиотеки. В винде при линковке плагина требуется реализация конструктора расшаренного класса. Т.е. фактически нужно экспортировать ряд полей из программы в загруженную библиотеку.

На одном форуме советовали повозиться с .def файлом, но у меня в итоге так ничего и не получилось. Если кто знает правильное решение проболемы (без выноса sharedClass в отдельную библиотеку), буду благодарен за помощь.

P.S. Компилятор mingw, хотя не уверен, что дело в нем. Линковщик то один...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2009, 23:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обратная линковка (C++):

Cтатическая линковка или "дайте _imp__func, а не __imp_func" - C++
написал DLL, собираю всё в MinGW Code::Blocks на выходе получаю файл func.a, func.def и func.dll внутри func.a три раза упоминается...

Линковка - C++ Builder
Проблема с линковкой. Приложение компилируется, а когда доходит до стадии линковки выводит ошибку: Fatal: Access violation. Link...

Линковка, модель разделения и т.д - C++ Builder
Здраствуйте. Стыдно за вопрос. Пытаюсь выполнить модель разделения на C++ Builder 6. Данный файл (hdata.hpp) подключается явно. ...

Линковка шаблонных функций - C++ Builder
Доброе время суток. Столкнулся с проблемой линковки шаблонной функции. Ситуация следующая - есть заголовочный файл, в котором описано...

Обратная итерация (i--) - C++ Builder
void __fastcall TForm1::Button1Click(TObject *Sender) {float bi,z,f,lamda,alfa,h,t,tp,ts;int a,c,b,N;//çàäàâàíèå ïåðåìåííûõ ...

Обратная польская запись в калькуляторе - C++ Builder
Есть калькулятор к нему нужно добавить &quot;(&quot;, &quot;)&quot;. Погуглив понял, что нужно внедрять обратную польскую запись. Помогите внедрить или...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2009, 23:18
Привет! Вот еще темы с ответами:

Обратная матрица известной матрицы 9 на 9 - C++ Builder
Здравствуйте. Надо найти обратную матрицу от известной матрицы: K = M_PI/180; a={ {0, 360*K157, 0, 0, 0, 0, 0, 0, 0},...

Работа с матрицами. (обратная матрица, миноры, алгебраическое доп) НУЖЕН СОВЕТ!!! - C++ Builder
Вот исходник моей проги http://************.com/files/cngy8h1wi там есть раздел ТЕСТ, кто может допишите пару действий с матрицами: 1....

Линковка DLL с произвольным размещением - Visual C++
Подскажите, где в VS можно задать предопределенное (не стандартное, а скажем, C:\Program Files\Program1\Bin) расположение линкуемой DLL.

Статическая линковка - C++ Qt
Здравствуйте! Последние несколько дней пытаюсь собрать Qt для стат. сборки, безуспешно. Не даст-ли какой-нибудь добрый человек мне архивчик...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.