June Feather
Win32 C++编程中DLL的使用
Win32 C++编程中DLL的使用

Win32 C++编程中DLL的使用

多个程序部分的合并方式

最佳使用的项目里面需要封装DLL给其他人调用这里研究了一下 win系统的DLL链接方式

win系统下多个程序之间的链接方式 有2种 静态链接 动态链接

静态链接

其中静态链接是使用staticlib方式链接多个程序,所有的C文件编译成二进制代码和索引表,导出不进行链接。等待整个项目编译完成时链接,这样整个项目只会输出一个文件。

这种封装模式类似只是将所有C文件编译了 并没有链接。

编译输出结果为 xxx.lib (.o文件的集合)

动态链接

动态链接即将程序封装链接完成只保留对应的几个接口外露。
此时实际模块内部程序已经链接完成。是不需要在进行链接的。
这种方式会生成 xxx.DLL 和xxx.lib 两个文件
其中DLL 类似应用程序是一个完整的程序文件,可以被调用运行。
lib包含了 DLL导出的符号信息,DLL可以提供的函数接口等。

动态链接隐式调用

隐式调用是调用DLL 比较简单的方式 参考VS2015的项目新建后导入 对应dll的头文件 加入dll的lib文件即可完成DLL的导入 此时编译DLL即可完成

动态链接显式调用

与隐式调用不同 显式调用 使用代码中的命令主动的加载dll 这样会有2个好处 DLL是主动的被加载的 也就是在程序执行过程中DLL可以被动态的替换 隐式调用为编译时导入 启动后dll就被加载了 没有可控的部分

目前我的项目只用了隐式调用 这种方式实现比较容易

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注