创建dll及使用
一、创建动态链接库文件
**
1、打开VS2013,选择文件,新建工程
2、选择新建W32控制台应用程序,这里将工程名改为makeDLL
3、在应用程序类型中选择DLL,点击完成
4、完成以上步骤后,项目中会生成下列文件
5、下面创建自己编写的函数,以简单的求和函数add为例,首先在添加头文件createdll.h,createdll.h中的代码如下:
#ifndef CREARDLL_H_
#define CREARDLL_H_
_declspec(dllexport) int add(int x, int y);/*_declspec(dllexport)声明一个导出函数,是说这个函数要从本DLL导出,我要给别人用。*/
int add(int x, int y); //求和函数
#endif
- 1
- 2
- 3
- 4
- 5
- 6
- 7
6、添加createdll.cpp文件,里面是对add函数的具体定义,如下所示
#include"stdafx.h" //注意不要忘了添加这个头文件
#include"creatdll.h"
#include<iostream>
int add(int x, int y)
{
return x + y;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
7、最终项目中所有文件如下:
8、选择生成解决方案,即可在项目中生成exe文件的Debug文件夹中得到makeDLL.dll和makeDLL.lib两个文件。
对于生成的lib文件有如下解释:
如果有 dll 文件, 那么 lib 一般是一些索引信息, 记录了 dll 中函数的入口和位置,
dll 中是函数的具体内容;如果只有 lib 文件,那么这个 lib 文件是静态编译出来
的,索引和实现都在其中。使用静态编译的 lib 文件,在运行程序时不需要再挂
动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性。
**
二、使用动态链接库文件
**
1、新建一个空项目,命名为testDLL,将上面生成的makeDLL.lib文件放到项目的存放代码的路径下,makeDLL.dll放到项目中生成exe文件的Debug文件夹中。
2、在项目中添加程序testdll.cpp,代码如下:
#include<iostream>
#pragma comment(lib,"makeDLL.lib")
_declspec(dllimport) int add(int x, int y); //_declspec(dllimport)声明一个导入函数,是说这个函数是从别的DLL导入,我要用。
int main()
{
std::cout << "2 + 3 = " << add(2, 3) << std::endl;
std::cin.get();
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
3、完成以上步骤即可看到输出结果如下,说明testDLL项目成功调用了makeDLL.dll里的求和函数add。
创建dll及使用的更多相关文章
- C#创建dll类库
类库让我们的代码可复用,我们只需要在类库中声明变量一次,就能在接下来的过程中无数次地使用,而无需在每次使用前都要声明它.这样一来,就节省了我们的内存空间.而想要在类库添加什么类,还需取决于类库要实现哪 ...
- 创建dll教程
先看我的总结: 总结: 1.头文件中如果想以C形式提供,要判断,如果定义了 _cplusplus, extern "c"{ 这里写接口声明 } 2.接口声明中,要表明接口接入点的 ...
- 在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试
from:http://m.blog.csdn.net/article/details?id=51075023 在VS2015中先创建C#项目,然后再创建要编写的动态库DLL项目,这样做的好处是整个解 ...
- VC++2008 用空工程创建 DLL
VC++2008 用空工程创建 DLL 一.创建 DLL 工程项目: 1)点击菜单[File] -> [New] -> [Project...] 弹出 “New Project” 对话框: ...
- windows编程:创建DLL
创建DLL Dll是动态链接库的缩写,可以作为附加代码动态映射到进程的地址空间中. 动态库的一般创建方法如下 方法1.使用 __declspec(dllexport) 方式导出 一般的框架如下 // ...
- VS2010环境下用ANSI C创建DLL和使用方法(转)
源:VS2010环境下用ANSI C创建DLL和使用方法 . 创建DLL工程 1.2 创建一个dll工程. 操作:a.文件->新建->项目->Win32控制台应用程序. b.输入工程 ...
- C# 创建Dll文件供程序调用方法
C# 创建Dll文件供程序调用方法 使用C#创建动态Dll文件方法: 1. 在VS2017环境下,新建-项目-选择类库类型: 2. 新创建一个.cs文件(如test.cs),编写代码如下: usin ...
- 利用C++创建DLL并C#调用
日期:2018年11月26日 环境:window 10,VS2015 community 一.利用C++创建DLL 1.新建项目: 2.打开CreateDLL.cpp文件,并输入测试代码 #inclu ...
- MinGW 使用和创建 DLL 应注意的问题
MinGW 是 GCC 的 Windows 版本,稳定版已经到了 4.5.2,功能和性能上很好,感觉不比 Microsoft 自家的 VC 差啊.但是 MinGW 下使用和创建 DLL 倒是要特别注意 ...
- 在VS2015中用C++创建DLL并用C++调用且同一时候实现对DLL的调试
一:用C++创建DLL 依照[在VS2015中用C++编写可被其他语言调用的动态库DLL]提示创建C++编写的DLL.或參考[在VS2015中用C++创建DLL并用C#调用且同一 ...
随机推荐
- spring4、hibernate4整合xml配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 使用Calendar来获取当前日期和时间
1 package com.java.test; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Calendar; 5 6 pub ...
- Android中的GreenDao框架修改数据库的存储路径
目前android中比较热门的数据库框架有greenDAO.OrmLite.AndrORM,其中我比较喜欢用GreenDao,其运行效率最高,内存消耗最少,性能最佳.具体怎么使用GreenDao,网上 ...
- gitlab api批量操作 批量添加用户
import os,time import requests,json # def downloadFile(name, url): # headers = {'Proxy-Connection': ...
- Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory解决方法
今天用pdo连接mysql遇到一个奇怪的问题,host设为127.0.0.1可以连接成功,设为localhost就会报如下的错误: PHP Fatal error: Uncaught excepti ...
- 地址栏传值 JS取值方法
function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...
- LINQ 基础语句
去全部集合 using (dat0216DataContext con = new dat0216DataContext()) { //LoList 是转换成 List集合 List<Us ...
- servlet的重定向和作用域
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ...
- codeforce Gym 100500E IBM Chill Zone (SG函数)
关于sg函数这篇blog讲得很详细http://blog.csdn.net/logic_nut/article/details/4711489. sg函数的价值在于把复杂的游戏拆分成简单的游戏,然后通 ...
- springboot 内置tomcat maxPostSizs 无法设置
++++++++++++++++++ RT +++++++++++++++++ 如下代码方可解决: /** * tomcat配置类 * 解决post数据体大于2048kb无法接收问题 * 解决tomc ...