то, что у меня здесь, довольно глупый и нубийский вопрос, но я просто не могу найти ответ в Интернете. Когда я хочу создать проект DLL (из существующих C++ проект), я прочитал, что мне нужно реализовать следующие строки в начале заголовочных файлов:Несколько классов в DLL-файле
#ifdef _EXPORTING
#define CLASS_DECLSPEC __declspec(dllexport)
#else
#define CLASS_DECLSPEC __declspec(dllimport)
#endif
я смотрел на примере в MSDN:
// MathFuncsDll.h
#ifdef MATHFUNCSDLL_EXPORTS
#define MATHFUNCSDLL_API __declspec(dllexport)
#else
#define MATHFUNCSDLL_API __declspec(dllimport)
#endif
Теперь я хочу, чтобы понять, нужно ли мне изменить «_EXPORTING» и «CLASS_DECLSPEC» для каждого нового класса я делаю? Например, если бы я создать класс с именем «Foo» в том же проекте, как «MathFuncsDll.h» я должен был бы поместить следующие строки в начале .h файла:
// FooDll.h
#ifdef FOO_EXPORTS
#define FOO_API __declspec(dllexport)
#else
#define FOO_API __declspec(dllimport)
#endif
Или есть ли какая-то строка во всех .h файлах проекта?
И еще одно, если я использую namespace
, чтобы ссылаться на всю dll как на одну и извлекать из нее классы, нужно ли положить using namespace *NAME*
в каждый файл .h?
Узнайте, что такое макрос, и тогда вы узнаете, что происходит. – PcAF