1、Dll相关代码

MyDll.h

[cpp] view plaincopyprint?
  1. #ifdef DLL1_API
  2. #else
  3. #define DLL1_API extern "C" __declspec(dllimport)
  4. #endif
  5. DLL1_API int Add(int a,int b);
  6. DLL1_API int Sub(int a,int b);
  7. class __declspec(dllexport) Person
  8. {
  9. public:
  10. Person(char *name);
  11. char*   m_Name;
  12. int     m_Age;
  13. };

#ifdef DLL1_API #else #define DLL1_API extern "C" __declspec(dllimport) #endif DLL1_API int Add(int a,int b); DLL1_API int Sub(int a,int b); class __declspec(dllexport) Person { public: Person(char *name); char* m_Name; int m_Age; };

MyDll.cpp

[cpp] view plaincopyprint?
  1. #define DLL1_API extern "C" __declspec(dllexport)
  2. #include "MyDll.h"
  3. #include <Windows.h>
  4. #include <stdio.h>
  5. #pragma comment(linker,"/DLL")
  6. #pragma comment(linker,"/ENTRY:DllMain")
  7. int Add(int a,int b)
  8. {
  9. return a+b;
  10. }
  11. int Sub(int a,int b)
  12. {
  13. return a-b;
  14. }
  15. Person::Person(char *name)
  16. {
  17. m_Name = name;
  18. }

#define DLL1_API extern "C" __declspec(dllexport) #include "MyDll.h" #include <Windows.h> #include <stdio.h> #pragma comment(linker,"/DLL") #pragma comment(linker,"/ENTRY:DllMain") int Add(int a,int b) { return a+b; } int Sub(int a,int b) { return a-b; } Person::Person(char *name) { m_Name = name; }

编译链接,如下图:

2、调用dll中类

Main.cpp

[cpp] view plaincopyprint?
  1. #include <iostream.h>
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #include "MyDll.h"
  5. #pragma comment(lib,"MyDll.lib")
  6. void main()
  7. {
  8. int x=3;
  9. int y=9;
  10. int z=Add(x,y);
  11. printf("%d+%d=%d /r/n", x,y,z);
  12. Person pt("123");
  13. cout<<pt.m_Name<<endl;
  14. }

#include <iostream.h> #include <stdio.h> #include <windows.h> #include "MyDll.h" #pragma comment(lib,"MyDll.lib") void main() { int x=3; int y=9; int z=Add(x,y); printf("%d+%d=%d /r/n", x,y,z); Person pt("123"); cout<<pt.m_Name<<endl; }

编译链接,如下图:

from:

http://blog.csdn.net/wangningyu/article/details/5467550

Dll 导出类 [示例代码]相关推荐

  1. dll的概念、dll导出类(转)

    1. DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数.变量或类.这些可以直接拿来使用. 静态链接库与动态链接库的区别: (1)静态链接库与 ...

  2. asp.net导出excel示例代码

    asp.net导出excel示例代码 asp.net导出excel的简单方法. excel的操作,最常用的就是导出和导入. 本例使用NPOI实现. 代码:/// <summary>     ...

  3. C++dll导出类的方式__declspec(dllexport)

    前言 有时导出dll的时候既想用到整个类又想保持多态 一.直接导出整个类 示例: 头文件 #ifdef AITWapper_EXP //根据项目是导入导出预定义 #define AITWapper_D ...

  4. DLL导出类和导出函数

    from:https://blog.csdn.net/goodluckmt/article/details/52691297 1.动态库DLL中的类或者函数有时候要被其他的库调用,因此需要被其他库调用 ...

  5. c#调用C++写的dll导出类,如何实现

    网上看了一些都是调用c++写函数能不能实现c#使用c++写的类各位高手请赐教 解决方案 » 类的有一个成员函数,是返回这个类的指针,那么在C#里面就是一个INTPTR,它是什么你不用管.然后C++文件 ...

  6. 关于通过dll导出类模板和函数模板

    动态链接库中导出模板函数 C++ 支持函数模板,利用函数模板,可以简化我们的程序代码.我在自己的代码中也经常用到函数模板,但是以前一直以为函数模板是要放到头文件中的,否则调用模板函数时,编译器会找不到 ...

  7. linux中mongo的导出数据,Linux下mongodb安装及数据导入导出教程(示例代码)

    Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1 ...

  8. java扫描包下类_实现获取扫描指定包路径下的jar文件或class文件JarPojoHandler类示例代码...

    通过JarPojoHandler类实现了扫描指定路径下如何获取所有的JAR包或class文件,可以对特定class对象文件筛选过滤等,具体代码如下所示import java.io.File;@b@im ...

  9. 编写DLL所学所思(2)——导出类

    2011.10.6 烛秋 一.导出类的简单方式 这种方式是比较简单的,同时也是不建议采用的不合适方式. 只需要在导出类加上__declspec(dllexport),就可以实现导出类.对象空间还是在使 ...

最新文章

  1. C#后台获取数据库数据--ADO.NET
  2. Oracle数据库实用脚本
  3. 小余学调度:学习记录(2021.10月)
  4. JavaFx实现-渐变效果之一
  5. php仿伊人集源码,仿伊人集wecenter()包含所有功能及官方付费插件,整站带数据...
  6. 小红书点赞收藏有什么用_橱柜门用什么材料好?老师傅开口说话了!听进去算你的,收藏备用...
  7. java.nio教程_Java NIO系列教程(三) Buffer
  8. python盒中取球_在Python中找到占据给定球的盒子的位置
  9. “安装程序无法定位现有系统分区,也无法创建新的系统分区”提示
  10. 中国速度袋行业市场供需与战略研究报告
  11. c语言入门程序下载,c语言入门自学软件下载
  12. 2019最新某私塾在线高级java软件架构师实战培训教程
  13. Java计算机毕业设计树木交易平台源码+系统+数据库+lw文档
  14. 中兴交换机配置telnet连接_锐捷核心三层交换机配置入门教程,适合新手小白
  15. OSChina 周六乱弹 —— 正负能量交锋,谁是赢家?
  16. 毕业设计---基于人脸识别的Web端考勤系统
  17. 【期货龙虎榜量价分析】红枣PVC创新高,多空大幅增仓博弈激烈
  18. 02: 实现发布帖子功能
  19. 大学计算机课试题答案,大学计算机基础试题及答案课件.doc
  20. delphi的connection closed Gracefully错误

热门文章

  1. 1/2 数据获取:本地数据的获取
  2. Struts2自己定义拦截器实例—登陆权限验证
  3. linux 空间不够了,怎么办?Disk Requirements:At least 11MB more space needed on the / filesystem....
  4. Flex4/Flash多文件上传(带进度条)实例分享
  5. aspnetpager的使用(完美篇)
  6. CVE-2019-0708复现
  7. java enumset_java.util.EnumSet.allOf()方法和实例的学习
  8. git 回退远端master分支版本
  9. .attr()与.removeAttr()
  10. Centos 7或者说linux 怎么一直运行一个项目,自己退出终端也在运行