在DLL编程中, 如果调用模版类, 则可能出现类似以下的错误(以CString的使用为例):
- warning C4251: “CLogFile::m_strFileName”: class“ATL::CStringT <BaseType,StringTraits>”需要有 dll 接口由 class“CLogFile”的客户端使用
解决方法如下:
在调用该模板类之前, 先加入以下声明, 将模版类导出(export):
- template class __declspec(dllexport) CStringT<char>;
如此, 则可消除该warning.
参考: http://topic.csdn.net/u/20090321/09/bc66fb7d-14f1-4b57-b6a0-5d3c86907cb2.html