Ben*_*Ben 1 c++ deployment dll
在C++中,什么是.lib和.dll文件,它们是如何创建的,它们是否能够让用户访问.cpp文件中实现的功能而不实际拥有这些文件?
特别是,我编写了包含一些我希望给别人使用的类的代码,但我不想给它们包含我的实现的.cpp文件.
PS:我正在使用CodeBlocks.
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