下面内容转载自以下地址: 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位的