VS2012创建DLL动态库

下面内容转载自以下地址: http://blog.csdn.net/missingu1314/article/details/9421085


1.创建项目: Win32->Win32项目 -> 名称:Dlltest -> 选择DLL (D) ->完成.

2.新建头文件testdll.h

#ifndef TestDll_H_
#define TestDll_H_

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

MYLIBDLL int Add(int plus1, int plus2);

//You can also write like this:
//extern "C" {
//_declspec(dllexport) int Add(int plus1, int plus2);
//};

#endif

Ps:__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类。

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

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

 

如果在新建dll的时候选择空白的文件(即不用vs自带的帮你生成)的话,注意一定要自己手动添加def文件。否则生成不了lib文件。


3.新建源文件testdll.cpp

#include "stdafx.h"
#include "testdll.h"
#include <iostream>
using namespace std;

int Add(int plus1, int plus2)
{
int add_result = plus1 + plus2;
return add_result;
}


4.新建模块定义文件dlltest.def

LIBRARY "Dlltest"

EXPORTS

Add @1

5.编译运行

1>------ 已启动生成: 项目: Dlltest, 配置: Debug Win32 ------
1>  stdafx.cpp
1>  dllmain.cpp
1>  testdll.cpp
1>  Dlltest.cpp
1>  正在生成代码...
1>     正在创建库 c:\users\john\documents\visual studio 2012\Projects\Dlltest\Debug\Dlltest.lib 和对象 c:\users\john\documents\visual studio 2012\Projects\Dlltest\Debug\Dlltest.exp4
1>  Dlltest.vcxproj -> c:\users\john\documents\visual studio 2012\Projects\Dlltest\Debug\Dlltest.dll
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========



PS(原创内容)

1. 若要生成64位dll,需要点击菜单生成 -> 配置管理器 -> 选定当前项目的平台 -> 新建x64. 之后重新编译,生成的dll就为64位的



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值