Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Serg046
21 / 21 / 2
Регистрация: 07.01.2010
Сообщений: 376
#1

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

01.07.2012, 15:34. Просмотров 1579. Ответов 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
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
02.07.2012, 15:40     Как экспортировать переменную (константу) из dll #2
этого нельзя сделать
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.07.2012, 15:58     Как экспортировать переменную (константу) из dll #3
Dll могут экспортировать данные, но не меременные, а так называемые ресурсы. Переменные для их использования придётся всё рано создавать в приложении.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
02.07.2012, 16:00     Как экспортировать переменную (константу) из dll #4
Можно сделать функцию, которая будет возвращать значение переменной.
Serg046
21 / 21 / 2
Регистрация: 07.01.2010
Сообщений: 376
02.07.2012, 17:52  [ТС]     Как экспортировать переменную (константу) из dll #5
gooseim, я так и делал. Просто в задании к лабе было, экспорт функций и констант. Я думал можно, ну нет так нет. Тем более уже не актуально, лабу уже отдал.

Добавлено через 1 минуту
Даже не верится что нет никакого костыля xD чтоб именно как переменную экспортировать.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
02.07.2012, 18:32     Как экспортировать переменную (константу) из dll #6
Serg046, костыль есть: пишешь функцию, которая возвращает указатель на переменную и потом делаешь с ней, что хочешь.
Serg046
21 / 21 / 2
Регистрация: 07.01.2010
Сообщений: 376
09.07.2012, 11:00  [ТС]     Как экспортировать переменную (константу) из dll #7
Ну это примерно тоже самое.
-=ЮрА=-
Заблокирован
Автор FAQ
09.07.2012, 11:18     Как экспортировать переменную (константу) из dll #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);
Миниатюры
Как экспортировать переменную (константу) из dll  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2012, 16:05     Как экспортировать переменную (константу) из dll
Еще ссылки по теме:

Как увеличить константу на 1? C++
C++ Как склеить текстовую константу
Как исправить константу C++
Как написать бинарную константу C++
Как экспортировать структуру из DLL? C++

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

Или воспользуйтесь поиском по форуму:
Serg046
21 / 21 / 2
Регистрация: 07.01.2010
Сообщений: 376
10.07.2012, 16:05  [ТС]     Как экспортировать переменную (константу) из dll #9
-=ЮрА=-, спасибо добрый человек. Я чувствовал подвох xD.
Yandex
Объявления
10.07.2012, 16:05     Как экспортировать переменную (константу) из dll
Ответ Создать тему
Опции темы

Текущее время: 03:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru