Есть статическая библиотека 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++' — Хитрик Денис
Здравствуйте, VVB16, Вы писали:
VVB>Здравствуйте, Davert, Вы писали:
D>>Есть статическая библиотека smartdb.lib
VVB>Ключевое слово — статическая.
VVB>Если статическая, то все эти dllimport, dllexport неуместны.
VVB>Если их там просто убрать, то должно работать все.
VVB>--
VVB>Vitaly
Не помогает

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