将头文件编译为DLL

时间:2015-08-21 19:27:31

标签: c++ winapi dll header

我创建了一个函数库,我想从中创建一个DLL并创建一个导出库。创建DLL不是问题。

问题在于,我不希望开发人员/用户查看头文件内部,因为代码未经过优化,有些内容看起来很乱,即使它有效。

无论如何我可以在另一个DLL中包含头文件的内容,这样头文件就会被隐藏,或者有没有办法将头编译成Binary?

Win32,visual studio 2010,'c / c ++'。

1 个答案:

答案 0 :(得分:2)

首先,从标题中删除代码:只需声明函数并指定类(即那里没有代码):

//header 
void my_ignomous_function(int);
class my_ignomous_class {
public: 
     my_ignomous_class();
     ~my_ignomous_class();
     bool my_ignomous_member(my_ignomous_class &x); 
private: 
     // unfortunately, you have to give these details.  
};

如果这还不够,您可以在类中使用pimpl idiom:使用指向用于实现的对象的指针。优点是您可以在头部中没有任何细节的情况下声明实现类。只有在实施中才需要细节。

//header 
class my_nice_class {
public: 
     my_nice_class()
     ~my_nice_class()
     bool my_nice_member(my_nice_class &x); 
private: 
     class my_horrible_secret_class *impl; 
};

另一种方法是对你的设计进行调整,以便你不再需要隐藏任何东西; - )