动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只把函数储存在已编译的OBJ文件中相比更有利于代码的重用。但随着Windows这样的多任务环境的出现,函数库的方法显得过于累赘。如果为了完成屏幕输出、消息处理、内存管理、对话框等操作,每个程序都不得不拥有自己的函数,那么Windows程序将变得非常庞大。Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝。动态链接库就是在这种情况下出现的。动态链接库不用重复编译或链接,一旦装入内存,DLL函数可以被系统中的任何正在运行的应用程序软件所使用,而不必再将DLL函数的另一拷贝装入内存。

一.新建工程(Win32控制台项目)->选择dll -> 空项目

二. 添加新建项  选择头文件->MathDLL.h   再次添加新建项  选择cpp文件->Math.cpp(最好是在头文件右键和源文件右键分别添加)

三.  下面开始编写代码

MathDLL.h:

  1. #ifndef _MATH_DEFINE
  2. #define _MATH_DEFINE
  3. #ifndef MATH_EXPORT
  4. #define MATH_API _declspec(dllexport)
  5. #else
  6. #define MATH_API _declspec(dllimport)
  7. #endif
  8. extern "C" {
  9. MATH_API int Add(int para1,int para2);
  10. MATH_API int Max(int para1,int para2);
  11. }
  12. #endif

这里需要注意MAX_EXPORT,因为是要设置dll导出函数,所以要选择dllexport,确保工程->属性->C/C++->预处理器里面有这个宏定义,不然就变成了dll导入了

MathDLL.CPP:

  1. #include "MathDLL.h"
  2. int Add(int para1,int para2)
  3. {
  4. return para1+para2;
  5. }
  6. int Max(int para1,int para2)
  7. {
  8. return para1>para2?para1:para2;
  9. }

重新生成解决方案,就能看见工程下面生成了*.lib文件和*.dll文件了

完成

最新文章

  1. vs2013单元测试练习过程
  2. 之三:CAAnimationGroup - 动画组
  3. java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
  4. python requests 配置超时及重试次数
  5. CF Two Substrings
  6. .NET中的加密算法总结(自定义加密Helper类续)
  7. Lucene和jackson冲突
  8. hdu_3062_Party(2-SAT)
  9. pur-ftpd在ubuntu上的安装
  10. oracle 11g centos6 安装
  11. 从无到有-在create-react-app基础上接入react-router、redux-saga
  12. javascript面向对象学习
  13. 【优质】React的学习资源
  14. HDU 2874 Connections between cities(LCA离线算法实现)
  15. C#读取excel文件,并生成json
  16. git —— 分支
  17. 如何让 C++ 和 C# 一样易用,而且效率更高?
  18. memcached内存管理机制分析
  19. [USACO08JAN]Cell Phone Network
  20. JavaScript全屏显示

热门文章

  1. Backbone视图渲染React组件
  2. sqlserver 笔记:常用字符串函数
  3. 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群(转载)
  4. hibernate-Maven
  5. HTML5学习笔记四:html5结构
  6. HNU 13073 Ternarian Weights 解题报告
  7. HOJ 1003 Max Sum 解题报告
  8. 解决xtrabackup command not found no mysqld group 问题
  9. hadoop-1.x的运行实例
  10. ORA-01555经典错误