首页 > 编程知识 正文

dll导出函数,c语言函数模板

时间:2023-05-06 20:07:54 阅读:24613 作者:4672

这两天为了导出普通类的模板函数写了Dll,但是稍微调查了一下,没有找到具体的资料。 我根据c模板的编译原理,推测应该将源代码放在头文件中直接导出,然后调查了接触的Open Source项目,确实是这样。 记在这里,便于下次查。

1、宏定义说明: # ifdef dll _ project # define template _ im _ export _ declspec (dll export ) else # define template _ im _ eer dfinenormal _ im _ export _ declspec (dll export ) else # define normal _ im _ export _ _ declspec ) dlimport ) dl

2 .头文件template typename T //模板类classimexdll { public : t addit (ta,T b ); (; //需要导出时,需要导出的类型templateclasstemplate _ im _ exportimexdllint需要特例化; //导出模板函数templatetypenametintfn1(TT1,T t2 ); //必须专用于导出类型template normal _ im _ exportintfn1(int t1,int t2 ); //导出常规函数/类normal_im_exportintfn2(inta,int b ); //如果普通类包含模板函数,则模板函数机械地使用src……另一种方法class normal _ im _ exportimexdll2{ public : templatetypenamettadd (ttd ) }; 3 .源文件# include ' imex dll.h ' templatetypenamettimexdllt 3360: addit (ta,T b ) tc=ab; //cout 'sum:' c endl; 返回c; }templatetypenametintfn1(tT1,T t2 ) {return t1 t2; (intfn2 ) int b,int b ) {return a b; } 4.为什么在普通类中不用担心模板函数中泄露核心代码? 关于模板函数,通常其安装功能调用启用模板type的具体功能,因此如果封装具体的启用type的安装过程,则核心代码不会泄露。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。