Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从DLL导出模板?_C++_Templates_Dll - Fatal编程技术网

C++ 如何从DLL导出模板?

C++ 如何从DLL导出模板?,c++,templates,dll,C++,Templates,Dll,我可以从DLL导出模板吗 template <class T1,class T2) T1 Create(T2 parameter) { T1 retvalue=new T1(); retvalue.process(parameter); // do some other work return T1; } 我想从DLL导出这样的函数 template <class T1,class T2) T1 Create(T2 parame

我可以从DLL导出模板吗

template <class T1,class T2)
T1 Create(T2 parameter)
{ 
      T1 retvalue=new T1();
       retvalue.process(parameter);
      // do some other work
      return T1;
 }
我想从DLL导出这样的函数

template <class T1,class T2)
T1 Create(T2 parameter)
{ 
      T1 retvalue=new T1();
       retvalue.process(parameter);
      // do some other work
      return T1;
 }

template无法从DLL导出模板。插入模板后,编译器需要能够查看所有源代码。

无法从DLL导出模板。输入模板后,编译器需要能够查看所有源代码。

谢谢。是否有其他方法可以做到这一点?在头文件中为模板提供源代码。谢谢。你能详细说明一下吗!我不明白。当我创建DLL时,我没有T1的源代码,但我知道它是从一个类(比如MyT1)派生的。当你创建DLL时,你根本没有任何理由实例化模板,因此DLL中没有任何东西可导出。下一个用户将这样做,他将需要模板声明来完成这项工作。只有当您提供实际的特定类型时,编译器才需要知道T1是什么。这发生在我们假定的DLL之外。将模板放入头文件并发送。谢谢。是否有其他方法可以做到这一点?在头文件中为模板提供源代码。谢谢。你能详细说明一下吗!我不明白。当我创建DLL时,我没有T1的源代码,但我知道它是从一个类(比如MyT1)派生的。当你创建DLL时,你根本没有任何理由实例化模板,因此DLL中没有任何东西可导出。下一个用户将这样做,他将需要模板声明来完成这项工作。只有当您提供实际的特定类型时,编译器才需要知道T1是什么。这发生在我们假定的DLL之外。将模板放在头文件中并发送该文件。