gpt4 book ai didi

c++ - 将头文件编译成 DLL

转载 作者:行者123 更新时间:2023-11-30 03:49:56 27 4
gpt4 key购买 nike

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

问题是,我不希望开发人员/用户查看头文件内部,因为代码没有优化,其中一些看起来很乱,即使它可以工作。

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

Win32,visual studio 2010,“c/c++”。

最佳答案

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

//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 中添加任何细节。细节仅在实现中需要。

//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;
};

另一种方法是对你的设计进行微调,这样你就没有什么可隐藏的了;-)

关于c++ - 将头文件编译成 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32147964/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com