VS2010 封装动态链接库 - 记录贴

1. 新建项目

VS2010 - 新建Win32项目 - DLL + 导出符号,这里的项目名为Test

2. 编辑文件

目前我还没有完全搞懂,先记录下

这里主要处理两个文件,其他不用管,Test.h 和 Test.cpp。

Test.h
_________________________________________________
// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 TEST_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// TEST_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。

// 这是用宏重新写了下每次导出都要用到的 __declspec(dllexport)
#ifdef TEST_EXPORTS
#define TEST_API __declspec(dllexport)
#else
#define TEST_API __declspec(dllimport)
#endif

// 此类是从 Test.dll 导出的
// 直接把写成的类移植进去就行
class TEST_API CTest {
public:
	CTest(void);
	// TODO: 在此添加您的方法。
};

// 这里是定义变量的一个示例写法,注意 extern 关键字
extern TEST_API int nTest;

// 这里是定义方法的一个示例写法,和类一样,直接添加导出的关键字就行
TEST_API int fnTest(void);
Test.cpp
___________________________________________________________________
// Test.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include "Test.h"

// 这里按照他的示例写法完成就行

// 这是导出变量的一个示例
TEST_API int nTest=0;

// 这是导出函数的一个示例。
TEST_API int fnTest(void)
{
	return 42;
}

// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 Test.h
CTest::CTest()
{
	return;
}

3. 运行封装

在 Release 下生成解决方案就行

调用时需要用到 Test.dll Test.lib Test.h 三个文件

Test.dll Test.lib 位置:

1.  X86 :Test \ Release \

2.  X64:Test \ x64 \ Release \

Test.h 位置:

Test \ Test \

4. 调用

新建Win32 控制台应用程序 项目“TestDll”,其他默认,其实空项目也行。

然后将上面的三个文件放在项目根目录中

在TestDll.cpp中添加导入句柄就可以了

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

#include "stdafx.h"

// 就是添加这两句话
#include "Test.h"
#pragma comment(lib, "Test.lib") 

int _tmain(int argc, _TCHAR* argv[])
{
		
	return 0;
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值