Здравствуйте, 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. Как в таком случае класс экспортировать?