1。请问如何在DLL中导出template?class可以(__declspec(dllexport)),为何template就不行?2。自己定义template,定义和实现放在.h和.cpp中,为何编译可通过,但连接通不过。而将定义和实现都放在同一个.h文件中就行了?vc classview对template的支持似乎不够。

解决方案 »

  1.   

    http://www.csdn.net/expert/topic/984/984411.xml?temp=.8656732
      

  2.   

    我是这样改的直接#include ***.cpp文件。效果一样。记得把编译错误的地方注释就可以了,注释这一句static char THIS_FILE[] = __FILE__;
      

  3.   


    static char THIS_FILE[] = __FILE__;
    之所以会出错,是因为该.h文件被包含时同时也包含了cpp,即该变量的定义也被包含了,,于是引起重复定义。这正是模板与非模板的区别