原来一直使用vc6.0做开发,但是公司主要使用vs2008工具,刚开始使用的时候感觉非常不好用,但是一周下来,不禁感叹,还是新的好啊,嘿嘿!

这里总结一下vs2008下创建dll并使用dll导出函数的方法,当然方法还有很多,找出一个自己比较习惯的方法就好!

一:生成DLL

1:创建DLL工程

文件->新建->项目->visual c++->win32->win32控制台应用程序(win32项目也可以)

填写项目名称MyDLL->确定->下一步->DLL(附加选项 对空项目打钩)->完成。

到这里DLL工程就创建完毕了,下面新建两个文件MyDLL.cpp和MyDLL.h。

MyDLL.cpp内容如下:

  1. #include <iostream>
  2. using namespace std;
  3. #include "MyDLL.h"
  4. int Add(int &a,int &b)
  5. {
  6. return a+b;
  7. }

MyDLL.h内容如下:

  1. #pragma once
  2. #define DLL_EXPORT __declspec(dllexport)
  3. extern "C" DLL_EXPORT int Add(int &a,int &b);

点击生成,则dll文件就生成了,vs2008不能直接生成lib文件,这个时候就需要我们在建立dll工程的时候 再新建一个def文件,默认生成然后重新生成就能够得到lib文件了

2:调用DLL文件导出的接口函数

vs2008这个IDE非常好用,我们这里玩一下,在上面创建的DLL工程中,再新建一个项目来直接调用DLL导出函数。

右键解决方案->添加->新建项目->建立一个空的常规工程 testMyDLL,下面新建两个文件testMyDLL.cpp和testMyDLL.h

testMyDLL.cpp内容如下:

  1. #include "testMyDLL.h"
  2. #pragma comment(lib,"..\\debug\\MyDLL.lib")
  3. #include <iostream>
  4. using namespace std;
  5. int main()
  6. {
  7. int a =3;
  8. int b =2;
  9. cout<<Add(a,b)<<endl;
  10. getchar();
  11. }

testMyDLL.h内容如下:

  1. #pragma once
  2. #define DLL_EXPORT __declspec(dllexport)
  3. extern "C" DLL_EXPORT int Add(int &a,int &b);

这里需要注意testMyDLL.cpp文件中调用lib的这句话:

  1. #pragma comment(lib,"..\\debug\\MyDLL.lib")

这里需要指明lib所在的文件夹,当然我们也可以在生成dll的MyDLL工程中,指定lib和dll文件的输出路径,直接到testMyDLL工程下。

注:dll文件的操作有很多方法,待以后丰富。。。

转载于:https://blog.51cto.com/marico/491436

VS2008创建dll,并使用dll相关推荐

  1. vs2008 C++创建和调用标准DLL

    为了共享代码,需要生成标准的dll,本文将介绍在vs2008 C++生成及调用dll. 一.生成DLL 生成一个名为FunDll的dll文件,对外函数为addl. step1:vs2008 环境下,文 ...

  2. Qt DLL总结【三】-VS2008+Qt 使用QPluginLoader访问DLL

    目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...

  3. wxWidgets:创建应用程序的 DLL

    wxWidgets:创建应用程序的 DLL wxWidgets:创建应用程序的 DLL 问题 创建一个 wxWidgets DLL 应用程序,支持 GUI 头文件:wxWidgetsDLL.h 源文件 ...

  4. 如何正确创建DLL和使用DLL

    如何正确创建DLL和使用DLL 本文将通过一个简单的实例来说明,如何正确的导出DLL中的类.对象.函数,并如何通过静态加载或动态加载的方式来使用DLL. 一.DLL中导出类.函数.对象 1. 创建一个 ...

  5. VC++6.0如何创建与调用动态链接库(dll)

    VC++支持的DLL: DLL的编制与具体的编程语言及编译器无关,动态链接库随处可见,VC++支持三种DLL:非MFC动态库.MFC规则DLL和MFC扩展DLL.DLL导出函数(或变量.类)可供应用程 ...

  6. windows中dllmain,创建进程和转发dll

    dllmain dll模块的函数入口 BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved ...

  7. vs2010 导出创建dll 导入使用dll 导出有命名空间的类 函数 外部函数

    2. #include "targetver.h" // dlltest.cpp : 定义 DLL 应用程序的导出函数. //#include "stdafx.h&quo ...

  8. 转 ajax.dll 与 ajaxpro.dll的用法

    转 ajax.dll 与 ajaxpro.dll的用法 文章分类:.net编程 ASP.NET AjaxPro的应用 1.首先下载AjaxPro组件.并将AjaxPro.dll引用到网站(或项目). ...

  9. c++显式加载dll并使用DLL的类

    转载自:  http://blog.163.com/tianjunqiang666@126/blog/static/8725911920121064573594/ 首先需要强调,当使用某个类时一般 ...

最新文章

  1. SAP S4HANA系统里的客供件管理
  2. linux下mysql修改root密码
  3. IN-12辉光数码管:俄罗斯进口的器件
  4. java反射三种_Java反射
  5. [导入]OpenSceneGraph编译指导
  6. Spring MVC实现Spring Security,Spring Stomp websocket Jetty嵌入式运行
  7. 关于ANTLR的通用库的需求:使用反射来构建元模型
  8. 论文浅尝 | 基于动态知识图谱向量表示的对称合作对话代理的学习
  9. validation 参数校验和统一异常处理
  10. python所有变量更新_python更新全局变量
  11. Python入门--方法重写
  12. ACWING828 模拟栈
  13. Atitit 企业文化建设 职称体系建设 之道 attilax著 1. 职称 1 1.1. 职称级别 prc poc 设正高级、副高级、中级、助理级 1 2. Uke职称级别 资深 高级
  14. springboot + mybatis-plus + quaryz 数据库持久化任务调度
  15. P2P终结者的工作原理
  16. ios逆向笔记--越狱IOS平台简介
  17. c语言编程后怎么做成软件,编程软件是用来编程的,那编程软件是怎么做出来的?...
  18. 90 后美女独家秘籍:从小白到 AI 算法工程师
  19. 讨厌程序员_我是程序员但讨厌编程
  20. 易宝支付Demo,生产中封装成简洁的代付接口,不用request如何获取项目运行时的真实路径...

热门文章

  1. linux操作系统之终端
  2. enum in c language
  3. 1093 字符串A+B (20 分)
  4. 1073 多选题常见计分法 (20 分)
  5. 函数mkdir、mkdirat和emdir
  6. java基础教程第三版耿祥义,后台开发JAVA岗
  7. linux 创建精灵进程,linux 进程通信之 守护进程
  8. 为什么直接ping知乎的ip不能访问知乎的网站,而百度就可以?
  9. rsync(六)命令中文手册
  10. 老生常谈:抽象工厂模式