VS2010 DLL 创建与调用 【适合初级入门程序员】

假设:

1. 编译器为VS2010

2. 工程根目录为C:\VSProjects\

3. DLL是基于MFC的 (如果不是基于MFC的,也是类似的)

DLL 的创建:

1. 创建一个DLL工程

File->New->Project...->在左侧Visual C++下选择MFC->在右侧选择MFC DLL->在下面的输入框输入工程的名字DLLTest->点击OK按钮->Next->DLL type默认选择第一项RegularDLL using shared MFC DLL->点击Finish按钮

 

2. 在DLLTest.h头文件中加入:

#ifdef DLLTest_API
#define DLLTest_API extern "C" _declspec(dllexport)
#else
#define DLLTest_API extern "C" _declspec(dllimport)
#endif

*注:extern "C" 是可选的,extern "C" 是为了保证导出的DLL函数名不发生变化。如果写了extern "C",那么导出和导入都要写,要保证一致。

          如果要导出的是类,不能在类名前加extern "C",切记切记!!编译不会通过的。

2.1导出method:

DLLTest_API int add(int x, int y)

{

    return x + y;

}

2.2导出class

class _declspec(dllimport) ClassA

{

};

 

3. 在DLL工程中配置宏名DLLTest_API

右键工程名DLLTest->选择Properties->选择Configuration Properties->选择C/C++->选择Preprocessor->在右侧Preprocessor Definitions的右侧的下拉箭头点击<Edit...>->在弹出的框中添加DLLTest_API->点击OK

 

4. 编译DLLTest

 

创建调用DLL的工程:

1. 创建一个Win32 Console Application工程

File->new->Project...->在左侧Visual C++下选择Win32->在右侧选择Win32 Console Application->在下面的输入框输入工程的名字CallDLLTest->点击OK按钮->Next->勾选MFC选项->点击Finish按钮

 

注:路径信息

DLLTest 工程路径:

C:\VSProjects\DLLTest

DLLTest.h头文件路径:

C:\VSProjects\DLLTest\DLLTest\DLLTest.h

DLLTest.lib文件路径:

C:\VSProjects\DLLTest\Debug\DLLTest.lib

DLLTest.dll文件路径:

C:\VSProjects\DLLTest\Debug\DLLTest.dll

 

2. 在CallDLLTest工程的CallDLLTest.h头文件中引DLL的头文件

#include "../../DLLTest/DLLTest/DLLTest.h"

 

3.在CallDLLTest工程中添加include路径

右键工程名DLLTest->选择Properties->选择Configuration Properties->选择C/C++->选择General->在右侧Additional Include Directories中添加DLLTest的工程路径

 

4.拷贝lib和dll文件

将DLLTest.lib和DLLTest.dll文件拷贝到C:\VSProjests\CallDLLTest\Debug\路径下

 

5.在CallDLLTest中添加Linker

右键工程名DLLTest->选择Properties->选择Configuration Properties->选择Linker->在右侧Additional Dependencies中添加lib的路径../Debug/CallDLLTest.lib

 

大功告成~!在CallDLLTest工程中可以调用DLL导出的函数、类。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值