我正在将一个基于ATL的静态库转换为动态链接库,在任何导出使用ATL CString
类(在atlstr.h中找到)的类中,都会得到以下警告:
警告 C4251: 'Foo::str_' : 类 'ATL::CStringT' 需要具有dll界面才能被'Foo'类的客户端使用
我正确地通过__declspec(dllexport)
导出Foo
类。这是我可以安全忽略的警告吗?或者我做错了什么?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。