我写了个DLL 并且导出了自己写的一些接口类(__declspec ( exportdll))。所有的类都在名字空间 namespace CDA 中。
在有些接口类中用到了stl 中的vector , map 等容器,在namespace CDA 中还定义了DLL内部用的结构体,
程序编译时出现许多警告:
例如:
1)
d:\work\project\CDA_DLL\sqlcmd.h(333) : warning C4251: “CDA::CDA_SqlCmd::m_sql_struct” : struct“CDA::_sql”需要有 dll 接口由 class“CDA::CDA_SqlCmd”的客户端使用
d:\work\project\CDA_DLL\sqlcmd.h(92) : 参见“CDA::_sql”的声明此处的CDA::_sql 是我定义的结构体。CDA_SqlCmd 是我定义的接口类 2)
d:\work\project\CDA_DLL\bulkcmd.h(210) : warning C4251: “CDA::CDA_BulkCopyCmd::m_recorders” : class“std::map<_Kty,_Ty,_Pr,_Alloc>”需要有 dll 接口由 class“CDA::CDA_BulkCopyCmd”的客户端使用
with
[
_Kty=ACE_UINT32,
_Ty=void *,
_Pr=std::less<ACE_UINT32>,
_Alloc=std::allocator<std::pair<const ACE_UINT32,void *>>
]
此处的CDA::CDA_BulkCopyCmd 是我写的接口类,类里有map< >类型的成员变量
m_recorders.不知如何处理这些错误。请指教。谢谢
在有些接口类中用到了stl 中的vector , map 等容器,在namespace CDA 中还定义了DLL内部用的结构体,
程序编译时出现许多警告:
例如:
1)
d:\work\project\CDA_DLL\sqlcmd.h(333) : warning C4251: “CDA::CDA_SqlCmd::m_sql_struct” : struct“CDA::_sql”需要有 dll 接口由 class“CDA::CDA_SqlCmd”的客户端使用
d:\work\project\CDA_DLL\sqlcmd.h(92) : 参见“CDA::_sql”的声明此处的CDA::_sql 是我定义的结构体。CDA_SqlCmd 是我定义的接口类 2)
d:\work\project\CDA_DLL\bulkcmd.h(210) : warning C4251: “CDA::CDA_BulkCopyCmd::m_recorders” : class“std::map<_Kty,_Ty,_Pr,_Alloc>”需要有 dll 接口由 class“CDA::CDA_BulkCopyCmd”的客户端使用
with
[
_Kty=ACE_UINT32,
_Ty=void *,
_Pr=std::less<ACE_UINT32>,
_Alloc=std::allocator<std::pair<const ACE_UINT32,void *>>
]
此处的CDA::CDA_BulkCopyCmd 是我写的接口类,类里有map< >类型的成员变量
m_recorders.不知如何处理这些错误。请指教。谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货