导出 DLL - 删除头文件

Posted

技术标签:

【中文标题】导出 DLL - 删除头文件【英文标题】:Exporting A DLL - Remove the header file 【发布时间】:2013-11-04 18:25:44 【问题描述】:

我对此进行了一些研究,但没有发现任何东西,所以我在这里发帖。

我正在尝试将我创建的框架导出到 DLL 中,并且我已经完成了这项工作。我的问题是我想删除 .h 附件,以便在我准备发布时人们无法阅读它。

我相信这是可能的。我研究过封闭源代码的程序和游戏,它们有 DLL,没有头文件。就这么简单,就是不知道怎么弄。

技术信息:

Windows 8.1 Visual Studio 2013 RC

【问题讨论】:

【参考方案1】:

为了针对 DLL 编译新程序,它需要头文件。然而,一旦这个新程序被编译,它就不再需要头文件了——链接已经被编译器设置好了。您应该能够仅分发可执行文件以及它链接的二进制 DLL 文件。

您是否尝试过简单地删除头文件?我假设 Visual Studio 会创建它们,因为正如我所说,要针对现有库编写新代码,您需要知道函数签名,但您应该能够删除它们并仍然运行应用程序。

还可能值得注意的是,一般来说,为闭源应用程序分发标头并不是真正的问题。所有头文件都包含“我有一个名为 f 的函数,它接受参数 A、B 和 C”,这不是超级敏感信息。通常,对于封闭源应用程序,您要保密的信息是功能是如何实现的,而不是它们的签名是什么。

【讨论】:

不,我从没想过会这么容易。让我试试,等一下。 真的就是这么简单。我很抱歉,我从没想过会这么容易。感谢您快速简单的回复。

以上是关于导出 DLL - 删除头文件的主要内容,如果未能解决你的问题,请参考以下文章

将头文件编译成DLL

如何在C ++中将多个头文件导出为单个头文件?

C++创建和使用动态链接库

Windows系统中的lib文件是做啥用的?

如何调用DLL中的导出类

动态链接库中能导出结构体吗