一、DLL的创建 
创建项目: Win32->Win32项目,名称:MyDLL


选择DLL (D) ->完成.

1、新建头文件testdll.h
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

------------------------------------------------------

testdll.h也可以写为:

#pragma once

#ifndef __AFXWIN_H__

//........

#endif

#include<string>

using namespace std;

//数据、类型定义等

#define OUTAPI __declspec(dllexport)

OUTAPI int Add(int a, int b);

2、新建源文件testdll.cpp
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;
}



3、新建模块定义文件mydll.def
mydll.def代码如下:
LIBRARY "MyDLL"
EXPORTS
Add   @1

4、vs2010自动创建dllmain.cpp文件,它定义了DLL 应用程序的入口点。

dllmain.cpp代码如下:
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "stdafx.h"
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
      )
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
  break;
}
return TRUE;
}

最后,编译生成MyDLL.dll文件和MyDLL.lib文件。

1>------ 已启动生成: 项目: MyDLL, 配置: Debug Win32 ------

1>  dllmain.cpp

========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========

1>------ 已启动生成: 项目: MyDLL, 配置: Debug Win32 ------

1>  stdafx.cpp

1>  testdll.cpp

1>  MyDLL.cpp

1>  正在生成代码...

1>     正在创建库 D:\Visual C++\工程\Libaray\MyDLL\Debug\MyDLL.lib 和对象 D:\Visual C++\工程\Libaray\MyDLL\Debug

【生成的DLL用DLL查看器,看到的导出函数名:Add,没有多余的奇怪字符】

VS2010中 C++创建DLL图解相关推荐

  1. VS2010中如何查看DLL的导出接口

    看<VC++动态链接库(DLL)编程深入浅出>时,里面提到使用Visual C++的Depends工具可以查看动态链接库中的导出接口.对于VC6.0,VC所带的Depends软件,在VC6 ...

  2. vs2010中c#中类库dll制作和引用方法

    vs2010中c#类库dll制件 1.建立类库文件 2.写好类:注意类的级别对外要公共的属性public 3.按F6生成.dll文件,可在目录的debug中找到 vs2010中c#类库dll引用方法 ...

  3. Mex文件在VS2010中调试方法

    Mex文件在VS2010中调试方法 matlab里面无法单步调试mex函数,故需转到VS上面调试,这里采用VS2010. 参考网上很多人写的方法但都很乱,杂,试了多次都没有成功.今天终于解决了,现把方 ...

  4. EVC创建DLL及调用的基本方法

    记录下在EVC4中如何创建DLL的方法,供以后参考. WINCE下的DLL有4种:1.WINCE DLL 2.MFC Regular DLL 3.MFC Extension DLL 4. Resour ...

  5. 在VS2010平台上创建并使用dll

    一.为什么需要dll 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,如ATL.M ...

  6. VS2008、VS2010中如何屏蔽讨厌的MSVCR*.dll的引用

    VS系列工具作为目前微软主打的集成开发环境,在历经了近20多年的发展后,到如今已经可以说是Windows平台上各种IDE环境中的翘楚了.很多别的开发工具已经难望其项背了,如今VS2010也已经面市很长 ...

  7. C#中创建DLL(动态链接库)及其使用

    一.DLL 与应用程序 动态链接库(也称为 DLL ,即为" Dynamic Link Library "的缩写)是 Microsoft Windows 最重要的组成要素之一,打开 ...

  8. [Hibernate]在VS2010中应用NHibernate 3.2与MySQL

    在VS2010中应用NHibernate 3.2与MySQL 罗朝辉 (http://kesalin.cnblogs.com/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 ...

  9. [转]VS2010中的单元测试

    本文转自:http://zxianf.blog.163.com/blog/static/30120701201101011757499/ 在VS2010中,单元测试的功能很强大,使得建立单元测试和编写 ...

最新文章

  1. easyui分页查询为什么会有下拉框_做网站优化为什么要分析百度下拉词和相关搜索?...
  2. 在Init之前究竟执行了什么?
  3. 软件工程概论 课堂练习 第2次作业3【酒店预订】
  4. java switch语句_Java 14:查看更新的switch语句
  5. 热度3年猛增20倍,Serverless云开发的技术架构全解析
  6. android item弹出popupwindow recycleview_Android实现RecycleView嵌套RecycleView中的item自动循环滚动功能...
  7. js for foreach 快慢_JS之 编码小技巧
  8. 【前端安全】web缓存投毒
  9. Java程序员面试分类真题(后附答案解析)
  10. 3D打印机DIY之六------G代码命令
  11. efi分区隐藏_隐藏Win10误显示的EFI分区
  12. PostgreSQL的upsert功能(on conflict do)的用法
  13. 留存/复购cohort
  14. 安迪·鲁宾支持的猫头鹰实验室刚推出了一款机器人视频会议摄像机
  15. 深圳09年各行薪水大全
  16. 李现成为PADI全球青年海洋大使
  17. python重新编号功能_Python:PDB文件中原子和残基重新编号
  18. 英文书《用unreal来学习c++》_股市高人经常用“开盘八法”来预判股票一天的走势,可以学习学习...
  19. 腾讯云从业者认证的作用是什么?考试包含哪些内容?
  20. Soul Knight破解小记

热门文章

  1. docker 之 Dockerfile 实践
  2. 前端开发一些很有用的工具
  3. 建模元件有哪些在MapleSim中
  4. 【C/C++学习】之七、指向函数的指针
  5. k-means k均值聚类的弱点/缺点
  6. STL之map和multimap容器
  7. const指针和指向常量的指针
  8. C语言指针,申请、释放内存,线程
  9. 【原】iOS:手把手教你发布代码到CocoaPods(Trunk方式)
  10. Java Map 怎样实现Key 的唯一性?