我正在将基于ATL的静态库转换为DLL,并且在使用ATL CString类(在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
};
Run Code Online (Sandbox Code Playgroud)
此DLL的所有客户端也将使用ATL.
我想在我的项目中使用隐式链接,而nmake确实想要一个.def文件.问题是,这是一个类,我不知道在exports部分写什么.有人能指出我正确的方向吗?
错误消息如下:
NMAKE:U1073:不知道如何制作'DLLCLASS.def'
PS:我正在尝试使用Windows CE Platform Builder构建.