Предупреждение C4251 при создании библиотеки DLL, которая экспортирует класс, содержащий член ATL :: CString

Я преобразовываю основанную на ATL статическую библиотеку в DLL и получаю следующее предупреждение о любых экспортируемых классах, использующих ATLCString класс (находится в atlstr.h):

предупреждение C4251: 'Foo :: str_': класс 'ATL :: CStringT' должен иметь dll-интерфейс для использования клиентами класса 'Foo'

Я правильно заявляюFoo класс как экспортируется через__declspec(dllexport), Это предупреждение, которое я могу игнорировать, или я делаю что-то не так? Настройки проекта DLL настроены на динамическую связь с ATL, но, похоже, это не имеет значения.

Например:

#ifdef DLLTEST_EXPORTS
#define DLLTEST_API __declspec(dllexport)
#else
#define DLLTEST_API __declspec(dllimport)
#endif

// This class is exported from the DLLTest.dll
class DLLTEST_API Foo
{
public:
 Foo();
 CString str_; // WARNING C4251 HERE
};

Все клиенты этой DLL также будут использовать ATL.

Ответы на вопрос(4)

Ваш ответ на вопрос