2012-06-28 5 views
1

У меня есть несколько классов в нескольких dll, и каждая dll может включать в себя другие.Импорт dll в другую dll C++

Я использую следующий макрос для того, чтобы указать параметр __declspec для всех заголовков моей DLL файлов:

#ifdef DLL_UTIL_A 
#define DLLEXPORT __declspec(dllexport) 
#else 
#define DLLEXPORT __declspec(dllimport) 
#endif 

Скажет dllA в том числе dllB. Дело в том, что когда я включаю заголовочный файл dllB в dllA, макрос DLLEXPORT переопределяется для импорта классов из файла заголовков dllB. Когда препроцессор возвращается к dllA для продолжения его разбора, он обновляет DLLEXPORT с обновленным нежелательным значением.

Должен ли я использовать различные определяющая для каждого DLL (напр. Заменить DLLEXPORT на DLLEXPORT_DLL_A) или есть чистый способ получить старое значение DLLEXPORT «s назад при возвращении в dllA?

ответ

2

Вам необходимо использовать другое имя макроса для DLLEXPORT для обеих DLL.

+0

Спасибо, мне было нужно это подтверждение! – Frank