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

时间:2011-12-30 17:24:14

标签: c++ deployment dll

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

特别是,我编写了包含一些我希望给别人使用的类的代码,但我不想给它们包含我的实现的.cpp文件。

PS:我正在使用CodeBlocks。

1 个答案:

答案 0 :(得分:6)

Lib和dll文件是以通常方式创建的库,具有到编译器的特殊开关,用于指示所需的输出文件类型。

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

您的源代码完全安全,但有一个例外:

主cpp应用程序可用的任何全局变量名称或函数名称都以lib文件和dll文本形式出现。如果检查一个lib文件或一个DLL,他可以以纯文本形式看到这些全局名称和函数名称:只有名称本身 - 只是名称而已。

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

我认为我这么说是对的。如果我不是,我相信这里有人会很高兴告诉我一切: - )

HTH