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

在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

作者:wqvbjhc
出处:https://www.cnblogs.com/wqvbjhc/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
原文地址:https://www.cnblogs.com/wqvbjhc/p/2465131.html