C/C++ 加载链接库
时间:2019-12-03
本文章向大家介绍C/C++ 加载链接库,主要包括C/C++ 加载链接库使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一种是静态加载,使用Lib文件,另一种是动态加载,使用dll文件。
例如写了一个库的项目,
导出函数的声明如下:
/*生成一个随机数p,1<=p<=x*/ extern "C" __declspec(dllexport) unsigned int RandomUINT(unsigned int x);
编译后会有*.lib和*.dll文件。
静态加载
在使用这个函数的文件中加上:
//静态链接 #pragma comment(lib, "E:\\Test\\Debug\\xddll.lib") extern "C" __declspec(dllexport) unsigned int RandomUINT(unsigned int x);
然后就可以在代码中像调用本地函数一样,愉快地调用这个函数了。
动态加载
这个稍微麻烦,但是更常见一些,毕竟很多都是直接丢给你一个dll文件。
首先,你要根据函数原型,定义一个函数指针,这个不是必须的,但是会比较方便:
typedef unsigned int (*DLLRandomINT)(unsigned int);
接下来就是如何在代码中使用:
HMODULE hLib = LoadLibrary(TEXT("xddll.dll")); DLLRandomINT rndint=(DLLRandomINT)GetProcAddress(hLib, "RandomUINT"); cout << rndint(50) << endl;
测试图省事,没有做加载调用和转换的检测(假设加载是成功的)。
原文地址:https://www.cnblogs.com/castor-xu/p/11978945.html
- python爬虫(四)_urllib2库的基本使用
- 投资人榴莲又卖出一枚三拼域名
- python爬虫(五)_urllib2:Get请求和Post请求
- python爬虫(七)_urllib2:urlerror和httperror
- 双拼市场好!米友售出域名chuijia.com
- Elasticsearch--数据索引
- python爬虫(一)_爬虫原理和数据抓取
- 域名tbw.vip一口价58888元交易
- Tomcat服务器+JSP页面+MySQL数据库网站部署
- 一步步教你理解LSTM
- 2017下半年IT行业快速发展的趋势
- 2018年人工智能和机器学习路在何方?听听美国公司怎么做
- Kubernetes服务网格(第10部分):服务网格API
- Kubernetes的服务网格(第2部分):Pods目前看来还是很棒的
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [翻译]Pexels免费图片API文档
- 如何搭建一个高可用的服务端渲染工程
- [Go] Golang练习项目-GO语言实现插入排序
- vue3+webpack项目搭建实验
- HTML中p标签中插入div标签会发生什么
- K8S 在有赞 PaaS 测试环境中的实践
- Netty高级篇
- SQL工具集-查询会话等待
- 哈工大李志军操作系统实验1
- 有赞推荐系统关键技术
- 8086汇编格式
- React 中 getDerivedStateFromProps 的三个场景
- Java7的try-with-resources声明(转)
- 聊聊java中的哪些Map:(三)HashMap中的Iterator和Spliterator
- 聊聊java中的哪些Map:(四)LinkedHashMap源码分析