ALT 工程中,当导出类中包含string类型的私有成员时,会产生告警 warning C4251:class“std::basic_string”需要有 dll 接口由 class“xxx”的客户端使用

来源:互联网 发布:运营商数据抓取 编辑:程序博客网 时间:2024/05/01 10:45

问题:

=====================================================================

ALT 工程中,当导出类中包含string类型的私有成员时,会产生如下告警:

 warning: C4251:class“std::basic_string<_Elem,_Traits,_Ax>”需要有 dll 接口由 class“xxx”的客户端使用

 

处理方法:

=====================================================================

#ifdef STL_EXPORTS
#define CLASS_API __declspec(dllexport)
#define EXPIMP_TEMPLATE
#else
#define CLASS_API__declspec(dllimport)
#define EXPIMP_TEMPLATE extern
#endif


EXPIMP_TEMPLATE  template class CLASS_API  std::allocator<char>;
EXPIMP_TEMPLATE               class CLASS_API  std::_String_base;
EXPIMP_TEMPLATE  template class CLASS_API  std::_String_val<char,std::allocator<char>>;
EXPIMP_TEMPLATE  template class CLASS_API  basic_string<char, char_traits<char>, std::allocator<char>>;

原创粉丝点击