动态链接库的创建与使用


练习环境:  Microsoft Visual studio 2010
练习语言:  c++
练习目的:  创建c++编写的dll文件以及使用dll文件
练习步骤:

一:创建Dll
1.创建WIN32控制台应用程序项目,取名为DllTest,点击确定。
(文件->新建->项目->Visual C++->Win32->Win32控制台应用程序)
旁白:虽然创建的是应用程序,不过不要紧张,一会儿会通过向导把它变成dll程序的。


2.根据应用程序向导依次选择:
   1)概述选项卡,直接点击下一步
   2)应用程序设置选项卡,在应用程序类型栏选择 Dll,点击完成。
旁白:其他设置均为默认,点击完成后,通过之前向导的设置会自动帮你创建默认的代码以及框架。

3.为您的主程序添加一个头文件,取名为DllTest.h
(解决方案的项目名上右键->添加->新建项->头文件)
旁白:设置头文件的目的就是为了能让外部程序通过这个头文件来访问dll中的方法等等。


4.在DllTest.h添加如下示例代码:

#ifdef DLLTEST_EXPORTS 
#define DLLAPI extern "C" __declspec(dllexport) 
#else 
#define DLLAPI extern "C" __declspec(dllimport) 
#endif

DLLAPI int __stdcall DoAdd(int a, int b);

旁白:DLLTEST_EXPORTS 与 DLLAPI都是自己起的名字,DoAdd()是想要提供给外部接口的方法。

5.在DllTest.cpp中实现方法,代码如下:

// DllTest.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"

#define DLLTEST_EXPORTS 
#include "DllTest.h"
int __stdcall DoAdd(int a, int b)
{
	return a + b;
}


6.编译 + 生成
如果编译的过程中如果出错(C1083),请在修改项目属性,预编译头不使用。

如果在生成的过程中如果出错(LNK1123),请在项目属性输入和输出的嵌入清单选择否。
但是根本的解决方案是 请点击链接查看结果

旁白:先编译,后生成,如果期间总是报莫名其妙的错,就清理下,然后点击重新生成,再或者重启软件。(已经确定代码没问题)


7. 创建Dll的所有步骤完毕,生成后,可以在项目目录下的Debug目录找到DllTest.dll 和DllTest.lib,即我们想要的成果物,并且把代码中头文件一并拷贝出来。
也就是说,目标文件有三个DllTest.h,DllTest.lib,DllTest.dll


二:使用Dll

1.创建自己的应用程序,这里就以c++的Win32控制台应用程序为例,取名为MainTest
(创建方法与上一节的dll创建一模一样,只是向导的时候和Dll的不太一样,这里疯狂点下一步就行)

2. 拷贝上一节生成的三个文件(.h,.lib,.dll)到MainTest项目中,并且右键MainTest的项目,引用DllTest。


3.把DllTest.h添加到项目中,并且在MainTest.cpp中include进来,然后,就可以使用了,MainTest.cpp完整代码如下:

// MainTest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "DllTest.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int a = 5;
	int b = 6;
	int c = DoAdd(a,b);
	return 0;
}

4.点击运行,通过设置断点,可以看到c的结果为11,搞掂。


以上讲说是边操作边记载的,运行结果真实有效。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值