博客
关于我
应用程序与dll的静态库通信
阅读量:401 次
发布时间:2019-03-06

本文共 710 字,大约阅读时间需要 2 分钟。

应用程序与dll导出函数的通信方式

应用程序与DLL导出函数的”静态库“通信-C/C++

何为静态链接库和动态链接库的定义是一样的,区别就在于共享程序代码的方式。

程序一般是需要经过预处理,编译、汇编和链接几个步骤,静态库特点是可执行文件中包含了库代码的一分完整拷贝,缺点就是多次使用就会有多分冗余拷贝

静态库是在程序的链接阶段就复制到了程序里,和程序运行的时候没有关系,而动态库是在链接阶段没有被复制到程序中,而是在程序运行的时候由系统动态加载到内存中供程序使用。使用动态库的优点是系统只需要载入动态库,不同的程序可以得到内存中相同的的动态库的副本,来节约了内存。

 

首先在dll文件中定义函数和申明导出函数

 

 

 

然后新建应用程序来调用dll

1 连接使用静态库

#pragma comment(lib,"dll")

原型

#pragma comment(comment-type,["commentstring"])

comment-type是一个预定义的标识符,指定注释的类型,是compiler,exestr,lib,linker之一

commentstring是一个为comment-type提供附加消息的字符串

指定参数lib:

在#pragma comment中指定lib参数后,需要在后面添加路径,如果直接添加名字的话表示在本目录下得到静态库

然后申明对应的想要调用的函数

 

 

 

2添加lib和dll文件

lib文件的目录如果只是名字表示是在解决方案下的目录

将dll文件添加到对应的编译环境下(比如:debug或release版本)

 

 

完整代码实现:

https://github.com/skrandy/-dll-

转载地址:http://gsfkz.baihongyu.com/

你可能感兴趣的文章
Unity平台 | 快速集成华为性能管理服务
查看>>
详细实例教程!集成华为虚假用户检测,防范虚假恶意流量
查看>>
对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测
查看>>
使用Power BI构建数据仓库与BI方案
查看>>
pytest封神之路第二步 132个命令行参数用法
查看>>
Django认证系统并不鸡肋反而很重要
查看>>
快用Django REST framework写写API吧
查看>>
tep用户手册帮你从unittest过渡到pytest
查看>>
12张图打开JMeter体系结构全局视角
查看>>
Spring Boot 2.x基础教程:构建RESTful API与单元测试
查看>>
[UWP 自定义控件]了解模板化控件(1):基础知识
查看>>
UWP 自定义控件:了解模板化控件 系列文章
查看>>
[UWP]从头开始创建并发布一个番茄钟
查看>>
在 Azure 上执行一些简单的 python 工作
查看>>
WinUI 3 Preview 3 发布了,再一次试试它的性能
查看>>
使用命令把SpringBoot项目打包成可运行的jar包(简洁,操作性强)
查看>>
List数组排序
查看>>
VMware vSphere 离线虚拟机安装 BIND 9
查看>>
说说第一份工作
查看>>
dojo/request模块整体架构解析
查看>>