Re[3]: Можно ли импортировать класс из DLL при explicit lin
От: Аноним  
Дата: 06.02.04 02:56
Оценка:
Здравствуйте, Ovl, Вы писали:

Ovl>Здравствуйте, molostov, Вы писали:


M>>Из библиотек экспортируются только функции. Но эту задачу можно решить другим способом.

M>>В библиотеке описать экспортируемую функцию, которая будет принимать все необходимые параметры (имена файлов, форматы, опции и т.д.). В этой функции работать со своим классом (он является внутренним классом библиотеки). Вот и все.

Ovl>неа. из dll можно экспортировать как класс, так и обычную переменную.

Ovl>оформляется примерно также.


Ovl>
Ovl>// h-файл

Ovl>#ifdef DLL0_EXPORTS
Ovl>#define DLL0_API __declspec(dllexport)
Ovl>#else
Ovl>#define DLL0_API __declspec(dllimport)
Ovl>#endif

Ovl>// This class is exported from the dll0.dll
Ovl>class DLL0_API CDll0 {
Ovl>public:
Ovl>    CDll0(void);
Ovl>};

Ovl>extern DLL0_API int nDll0;

Ovl>DLL0_API int fnDll0(void);
Ovl>



Ovl>
Ovl>// cpp-файл

Ovl>// This is an example of an exported variable
Ovl>DLL0_API int nDll0=0;

Ovl>// This is an example of an exported function.
Ovl>DLL0_API int fnDll0(void)
Ovl>{
Ovl>    return 42;
Ovl>}

Ovl>// This is the constructor of a class that has been exported.
Ovl>// see dll0.h for the class definition
Ovl>CDll0::CDll0()
Ovl>{ 
Ovl>    return; 
Ovl>}
Ovl>


Ovl>зы. только зачем же такой экспорт-файл писать загадочный?...



Вы посмотрите на задание, вернее на ограничения в нем заданные.
DLL не линкуется, а грузится вызовом AfxLoadLibrary. Как в таком случае класс экспортировать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.