一个简单的调用动态库的实例
先创建一个动态库dll工程
工程中添加 dlltest.cpp dlltest.def dlltest.h
dlltest.h
//dlltest.h
extern __declspec(dllexport) int FuncTest();
dlltest.cpp
//dlltest.cpp
__declspec(dllexport) int FuncTest(int a )
{if (a = 1){return 100;}
}
dlltest.def
LIBRARY "testmydll"
EXPORTSFuncTest
编译后生成dlltest.dll dlltest.lib
再新建一个Win32控制台工程用来调用dlltest.dll
将dlltest.dll拷贝到Win32的Debug目录下面
Win32项目中dll.cpp文件如下
#include <iostream>
#include "string"
#include <stdio.h>
#include <windows.h>
using namespace std;int main()
{typedef int (*HFUNC)(int a );HINSTANCE hDLL = LoadLibrary("testmydll.dll");if (hDLL){HFUNC hFun = (HFUNC)GetProcAddress(hDLL,"FuncTest");if (hFun){int a =1;int b = hFun(a);printf("%d\n",b);}}}
编译执行则调用了dlltest.dll 打印出100
如果是调用 dlltest.lib的话,就要将dlltest.lib拷贝到工程目录下(Debug上一级),编译的时候就直接链接了,另外还要把头文件 dlltest.h加到工程中
Win32项目中dll.cpp中的代码如下
#include <iostream>
#include "string"
#include <stdio.h>
#include <windows.h>
#include "dlltest.h"
using namespace std;
#pragma comment(lib,"testmydll.lib")
__declspec(dllimport) int FuncTest(int a );
int main()
{int b = FuncTest(1);printf("%d\n",b);return 0;
}
编译执行打印出100
一个简单的调用动态库的实例相关推荐
- linux平台 一个简单的helloworld动态库的制作与使用
编写一个简单的动态库并调用. 动态库代码: HelloWorld.c /*** 简单动态库文件使用*/ #include "HelloWorld.h"void hello(void ...
- qt调用import sys库_QTCreator调用动态库实例
在 linux 中, qt 里面已经集成了最新的开发平台 QT Creator ,下面是我练习调用动态 库( .so 文件)的例程: 1 .打开 QT Creator ,点击 File -> N ...
- Java调用动态库(转载)
记得以前 Java 要调用C/C++写得动态库都是用的 JNI 方式,还需要自己写不少 C/C++ 代码.比如说要在Java中调用已有的动态库,如 Windows 的 user32.dll 的方法 M ...
- 利用JNative实现Java调用动态库
由于项目要求,需要用Java调用windows的dll文件,查了一下,如果用JNI的话是比较麻烦的,在sourceforge.net上搜索了一下 "Java dll",首先出现的是 ...
- 动态调用动态库方法 .so
2019独角兽企业重金招聘Python工程师标准>>> 关于动态调用动态库方法说明 一. 动态库概述 1. 动态库的概念 日常编程中,常有一些函数不需要进行编译或者可以 ...
- Java调用动态库 缺点,Java调用动态库所需要关心的有关问题
Java调用动态库所需要关心的问题 标签: 无标签 利用JNative实现Java调用动态库(转) http://cctv663.blog.163.com/blog/static/1011921220 ...
- CMake从0到1:Linux编译动态库,调用动态库,VSCode单步执行
工欲善其事必先利其器,如果要想在Linux系统上编写C++代码,常常我们会有如下几个需求: 1.编译可执行文件 2.可执行文件调用动态库,这里通常包括两种情况:(1)自己的动态库,那就得先生成再链接: ...
- Node.js使用ffi-napi,ref-array-napi,ref-struct-napi调用动态库
0x01 概述 使用electron开进行桌面程序的开发,似乎成了WEB前端开发人员转桌面程序开发的首选.近期有一些使用在electron中使用加密锁的需求,学习了一下在Node.js中通过ffi-n ...
- linux 调用动态库so文件
关于动态调用动态库方法说明 一. 动态库概述 1. 动态库的概念 日常编程中,常有一些函数不需要进行编译或者可以在多个文件中使用(如数据库输入/输出操作或屏幕控制等标准任务函数).可以 ...
最新文章
- 斯坦福马超:随机梯度下降,也爱躺「平」……why?
- C++,那些可爱的小陷阱(一)
- vivado中设置多线程编译
- QT使用winsocket
- 使用getline读入
- arcgis双标准纬线等角圆锥投影_世界地图是怎么制作出来的,各投影算法的来历...
- 【js拾遗】名称空间
- RTP/RTCP中的Jitter
- 华中数控hnc一818b_数控车床精确对刀方法总结
- php warning: directive,安装Composer PHP Warning: copy(): SSL operation failed with code
- maven与ant的区别
- openwrt中的mt7621、MAC存储、PPP、UCI、ubus
- WIN10系统连接蓝牙音箱,显示已连接但无声音
- Android移动端库存管理系统
- html新建框架网页,html怎么做网页框架
- 楚留香获取服务器信息卡主,楚留香手游沧海主线任务bug原因及解决方法一览
- 服务器””上的 MSDTC 不可用。解决办法
- java全栈系列之JavaSE-面向对象(异常详解)043
- ICCV2021-Soft Teacher-End-to-End Semi-Supervised Object Detection with Soft Teacher
- ShardingSphere-ShardingSphere的基本介绍
热门文章
- Selenium API-WebElement 属性
- 数据库-表记录增删改
- linux入门_Linux从入门到入土(抽奖送10本新书)
- 前后端分离后的前端时代,使用前端技术能做哪些事?
- 如果你对web前端学习感到迷茫的话请看完本文
- jquery mysql表格_使用jQuery设计数据表格:设计表格基类
- 后端根据百度地图真实路径距离_百度地图开放平台介绍--路线规划
- 获得Local IP Address (C++实现)
- 图像算法五:【图像小波变换】多分辨率重构、Gabor滤波器、Haar小波
- python处理多种编码格式的txt文件