Предупреждение 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.