Загрузка классов из статических библиотек
От: Davert  
Дата: 16.05.05 09:38
Оценка:
Есть статическая библиотека smartdb.lib

Вот её заголовочный файл

#include "database.h"
#include <string.h>
#include <stdlib.h>

#ifdef SMARTDB_EXPORTS
#define SMARTDB_DLL_ENTRY __declspec(dllexport)
#else
#define SMARTDB_DLL_ENTRY __declspec(dllimport)
#endif

class SMARTDB_DLL_ENTRY dbvField;
class SMARTDB_DLL_ENTRY dbvRecord;
class SMARTDB_DLL_ENTRY dbvTable;
class SMARTDB_DLL_ENTRY dbDatabase;

Экспортируются все эти классы. Но когда я хочу запустить конструктор какого нибудь класса выдает ошибку линкера. Но самое странное, что нет проблем с классом dbDatabase. В нем работают все функции. Скажите пожалуйста почему одни классы могут грузится,а другие нет. Может это в параметрах проекта настроить или...

Ещё странный момент. Если я размещаю файл с имплементацией всех его функций в заголовочный файл, то функции видны... Вобщем, полностью запутался.

Да, вот файловая структура библиотеки:

[smartdb.h]
|
[database.h]-[database.cpp]
|
[class.h]-[class.cpp]

Заранее благодарю.


23.08.05 15:03: Перенесено модератором из 'C/C++' — Хитрик Денис
Re: Загрузка классов из статических библиотек
От: VVB16 Россия  
Дата: 16.05.05 10:31
Оценка:
Здравствуйте, Davert, Вы писали:

D>Есть статическая библиотека smartdb.lib


Ключевое слово — статическая.
Если статическая, то все эти dllimport, dllexport неуместны.
Если их там просто убрать, то должно работать все.

--
Vitaly
Re[2]: Загрузка классов из статических библиотек
От: Davert  
Дата: 17.05.05 16:20
Оценка:
Здравствуйте, VVB16, Вы писали:

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


D>>Есть статическая библиотека smartdb.lib


VVB>Ключевое слово — статическая.

VVB>Если статическая, то все эти dllimport, dllexport неуместны.
VVB>Если их там просто убрать, то должно работать все.

VVB>--

VVB>Vitaly


Не помогает Всё то же... Собственно кажется те строки ничего и не значили...
Но вот что меня настораживает, может из-за моего невеликого опыта работы в Си, но почему-то библиотека компилируется в dll,
а в lib нет упоминаний о других классах кроме Database.

Вобщем до сих пор не понимаю: почему один клас виден прекрасно, а остальные — нет
Re: Загрузка классов из статических библиотек
От: Davert  
Дата: 18.05.05 18:23
Оценка:
НИкто не подскажет что с этим делать
Я понял. Кажется у меня просто не обновляется lib-файл.
Как решить эту проблему?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.