Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Serg046
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
1

Как экспортировать переменную (константу) из dll

01.07.2012, 15:34. Просмотров 2112. Ответов 8
Метки нет (Все метки)

Понимаю что очень глупый вопрос, но нету времени..
Как экспортировать константу и потом ее получить, динамически подгрузив библу.
Функции экспортирую так

C++
1
2
3
4
5
6
7
8
9
#ifdef __cplusplus 
#define EXPORT extern "C" __declspec (dllexport) 
#else 
#define EXPORT __declspec (dllexport) 
#endif
EXPORT int Func1(int param)
{
    return param + 1;
}
Вызываю так
C++
1
2
3
4
5
6
7
8
9
10
typedef int(*funcDll)( int );
funcDll myFunc;
 
HINSTANCE hDllInstance = LoadLibrary("dll1.dll");
    if (hDllInstance == NULL)
        cout << "hDllInstance == NULL" << endl;
    else
        myFunc = (funcDll)GetProcAddress(hDllInstance, "Func1");
    if (myFunc == NULL)
        cout << "myFunc == NULL" << endl;
Можно тоже самое, но не для функции, а для переменной, скажем типа int
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2012, 15:34
Ответы с готовыми решениями:

Как экспортировать интерфейс из dll
делал всё по примеру в инете, не работает код интерфейса struct I_MyInterface { virtual...

Как экспортировать структуру из DLL?
Как експортировать структуру из DLL Добавлено через 1 час 5 минут Что же я в тупике?

Как импортировать и экспортировать из dll класс?
Помогите, плз. Создал dll: //... class __declspec(dllexport) a { public : a(); }; a::a() {

Как экспортировать функцию из dll? У меня ошибка выдаётся
Как экспортировать ф-ю из dll? У меня ошибка выдаётся

Народ подскажите, чета я забыл DLL как экспортировать
Вот например есть в DLL код функции: void OpenAbout(HINSTANCE hInst, int cmdMode, HWND hWnds)...

8
OstapBender
586 / 525 / 75
Регистрация: 22.03.2011
Сообщений: 1,585
02.07.2012, 15:40 2
этого нельзя сделать
1
taras atavin
4207 / 1774 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
02.07.2012, 15:58 3
Dll могут экспортировать данные, но не меременные, а так называемые ресурсы. Переменные для их использования придётся всё рано создавать в приложении.
0
gooseim
Эксперт С++
511 / 415 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
02.07.2012, 16:00 4
Можно сделать функцию, которая будет возвращать значение переменной.
0
02.07.2012, 16:00
Serg046
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
02.07.2012, 17:52  [ТС] 5
gooseim, я так и делал. Просто в задании к лабе было, экспорт функций и констант. Я думал можно, ну нет так нет. Тем более уже не актуально, лабу уже отдал.

Добавлено через 1 минуту
Даже не верится что нет никакого костыля xD чтоб именно как переменную экспортировать.
0
gooseim
Эксперт С++
511 / 415 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
02.07.2012, 18:32 6
Serg046, костыль есть: пишешь функцию, которая возвращает указатель на переменную и потом делаешь с ней, что хочешь.
0
Serg046
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
09.07.2012, 11:00  [ТС] 7
Ну это примерно тоже самое.
0
-=ЮрА=-
Заблокирован
Автор FAQ
09.07.2012, 11:18 8
Вы чё прикалываетесь - нельзя экспортировать символ
Всё можно лишь бы руки правильно росли
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the EXPORTSYMBOL_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// EXPORTSYMBOL_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef EXPORTSYMBOL_EXPORTS
#define EXPORTSYMBOL_API __declspec(dllexport)
#else
#define EXPORTSYMBOL_API __declspec(dllimport)
#endif
 
// This class is exported from the ExportSymbol.dll
//вот вам целый класс на экспорт
class EXPORTSYMBOL_API CExportSymbol {
public:
    CExportSymbol(void);
    // TODO: add your methods here.
};
 
extern EXPORTSYMBOL_API int nExportSymbol;//Вот вам экспортируемый символ
 
EXPORTSYMBOL_API int fnExportSymbol(void);
2
Миниатюры
Как экспортировать переменную (константу) из dll  
Serg046
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
10.07.2012, 16:05  [ТС] 9
-=ЮрА=-, спасибо добрый человек. Я чувствовал подвох xD.
0
10.07.2012, 16:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2012, 16:05

Как переменную перевести в константу?
К примеру, есть переменная var i uint64 = 4 И её я хочу перевести в тип const uint64 Это нужно,...

Как экспортировать класс из DLL
Проблема в следующем есть класс написанный на С++, который надо поместить в DLL. Во - первых...

Как экспортировать функции фреймфорка в DLL
Добрый день! Вот уже через неделю сдаю работу, хотелось бы чтобы клиент не &quot;таскал&quot; за собой...


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

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

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