gpt4 book ai didi

c++ - 使用 lib 和 dll 文件隐藏实现?

转载 作者:行者123 更新时间:2023-11-30 00:57:11 25 4
gpt4 key购买 nike

在 C++ 中,什么是 .lib 和 .dll 文件,如何创建它们,它们是否是一种使用户能够访问在 .cpp 文件中实现的功能而无需实际拥有这些文件的方法?

特别是,我编写了一些代码,其中包含一些我想提供给其他人使用的类,但我不想将包含我的实现的 .cpp 文件提供给他们。

PS:我正在使用 CodeBlocks。

最佳答案

Lib 和 dll 文件是以通常方式创建的库,带有编译器的特殊开关以告知您想要哪种输出文件。

一个 lib 文件是一个静态库,它在链接时与您的主 cpp 程序链接一次,以生成一个独立的 exe 文件,不需要其他任何东西来运行。每次加载应用程序时,dll(动态链接库)都会与您的主 cpp 应用程序链接,因此是“动态的”。不,用户无法从这两种库中的任何一种获取您的 cpp 源代码。 lib 文件类似于 Linux/Unix 的 .a 文件; dll 类似于 Linux/Unix .so 文件。

您的源代码是完全安全的,只有一个异常(exception):

您的主 cpp 应用程序可用的任何全局变量名称或函数名称都以文本形式存在于 lib 文件和 dll 中。如果检查一个 lib 文件或一个 dll,他可以看到这些以纯文本形式显示的全局名称和函数名称:只有名称本身——只有名称,仅此而已。

您的消息来源非常安全。如果它是动态链接的,你会给出你的 exe 文件和 dll;如果它是静态链接的,或者只是 exe,如果我是你,这将是我的偏好。

我觉得我这么说是对的。如果我不是,我相信 SO 上的某个人会很乐意告诉我这一切:-)

HTH

关于c++ - 使用 lib 和 dll 文件隐藏实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8682122/

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