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. EntityFramework之领域驱动设计实践(十)(转)
  2. HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed out的解决方法
  3. crt python_SecureCRT Python
  4. android: 使用 AsyncTask
  5. exadata磁盘组无法mount恢复---惜分飞
  6. 集合均值(逆元+数学)
  7. c语言 函数的参数传递示例_C ++中带有示例的nearint()函数
  8. DBShop电子商务系统
  9. java的VIRT高的问题理解
  10. HMAC加密的消息摘要码
  11. Mac安装apktool/dex2jar/jd-gui逆向工具
  12. C#调用C++的DLL所有数据类型转换方式
  13. CSDN在线下载免费获取积分
  14. JS rgba颜色转16进制
  15. java 分布式序列号_分布式序列号生成?
  16. 松下服务器报警13参数修改,新版松下伺服发生故障报警代码一览及对策.doc
  17. 计算机统计字符数,怎么看word版本-Word文档中的字数和字符数是怎样统计的?
  18. CPA、CPS、CPC、CPM推广是什么意思
  19. CPU保护模式 分页表 描述符 段选择子
  20. linux sh文件执行情况,Linux下SH执行

热门文章

  1. 2/5 MySQL入门总结:数据类型
  2. 旧版 npm 安装 node_modules 模块目录层次过深,导致 win 下无法删除
  3. Spring Boot (1) 构建第一个Spring Boot工程
  4. linux下更换pip源
  5. worksteal thread pool
  6. careercup-数组和字符串1.7
  7. Spring 操作数据库
  8. Silverlight初级教程系列
  9. XCTF-高手进阶区:bug
  10. Vscode----热门插件超实用插件汇总(史上最全)