我创建了一个函数库,我想从中创建一个DLL并创建一个导出库。创建DLL不是问题。
问题在于,我不希望开发人员/用户查看头文件内部,因为代码未经过优化,有些内容看起来很乱,即使它有效。
无论如何我可以在另一个DLL中包含头文件的内容,这样头文件就会被隐藏,或者有没有办法将头编译成Binary?
Win32,visual studio 2010,'c / c ++'。
答案 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;
};
另一种方法是对你的设计进行调整,以便你不再需要隐藏任何东西; - )