在DLL编程中调用模版类时出现的类似"class“XXX”需要有 dll 接口由 class“XXX”的客户端使用"的warning的解决方案

时间:2022-03-10 10:32:04

在DLL编程中, 如果调用模版类, 则可能出现类似以下的错误(以CString的使用为例):

  1. warning C4251: “CLogFile::m_strFileName”: class“ATL::CStringT <BaseType,StringTraits>”需要有 dll 接口由 class“CLogFile”的客户端使用  
 

解决方法如下:

在调用该模板类之前, 先加入以下声明, 将模版类导出(export):

  1. template class __declspec(dllexport) CStringT<char>;  
 

如此, 则可消除该warning.

参考: http://topic.csdn.net/u/20090321/09/bc66fb7d-14f1-4b57-b6a0-5d3c86907cb2.html