一下是dll文件的制作,在创建dll工程时,选择第一个“空工程”,然后新建两个新文件 分别是xxx.cpp xxx.def

xxx.cpp

xxx.def

这就是xxx.dll的制作过程,简单不?

xxx.cpp

新建一个MFC的对话框程序,其中对话框的主界面是

为+、-按钮生成响应事件 其源代码如下:

void CDll_LoadDlg::OnBtnAdd()
{// TODO: Add your control notification handler code hereHINSTANCE hInst=LoadLibrary("Dll_Create.dll");//显示加载Dll_Create.dlltypedef double (_stdcall *ADDPROC)(double a,double b);//函数名字叫什么都可以,但要保持上下一致ADDPROC Add=(ADDPROC)GetProcAddress(hInst,"add");//从Dll_Create中寻找名叫‘add’的函数,并在此程序中定义为‘Add’if(!Add){MessageBox("获取函数地址失败");return;}UpdateData(TRUE);m_e=Add(m_1,m_2);UpdateData(FALSE);CString str;if(GetDlgItemText(IDC_S,str),str=="-"){SetDlgItemText(IDC_S,"+");}FreeLibrary(hInst);}void CDll_LoadDlg::OnBtnSub()
{// TODO: Add your control notification handler code hereHINSTANCE hInst=LoadLibrary("Dll_Create.dll");typedef double (_stdcall *ADDPROC)(double a,double b);ADDPROC Subtract=(ADDPROC)GetProcAddress(hInst,"subtract");if(!Subtract){MessageBox("获取函数地址失败");return;}UpdateData(TRUE);m_e=Subtract(m_1,m_2);UpdateData(FALSE);CString str;if(GetDlgItemText(IDC_S,str),str=="+"){SetDlgItemText(IDC_S,"-");}FreeLibrary(hInst);
}

就此,对于dll的简单使用就终结了,这个例子最给我最深的感受是不用#include什么东西!!!!!

dll注入的一种方式相关推荐

  1. c++实现DLL注入的几种方式

    经过几天的折腾,找到了几个dll注入的方法,但是不意外的是,都暂时没法注入到LOL中,毕竟有进程保护在那,OpenProcess这一步就直接被拒绝了,提升Debug权限也没用,下面记录一些代码,希望能 ...

  2. Dagger2 知识梳理(1) Dagger2 依赖注入的两种方式

    一.资料推荐 最近这几天一直在看有关Dagger2有关的文章,感觉就是这东西真难用.真难懂,数次想要放弃,还好有网上大神的教程帮助,模模糊糊总算能把基本的几个概念跑通了. 这里首先推荐 牛晓伟 的下面 ...

  3. 依赖注入的两种方式并附上例子

    1.依赖注入:就是指程序在运行过程中,如果需要另外一个对象协助完成时,无需在代码中创建被调用者,而是依赖外部的注入获取. 2.依赖注入的两种方式: 设置注入:设置注入是通过setter方法注入被调用者 ...

  4. IoC(控制反转)的主要组件和注入的两种方式

    一.IoC的主要组件: (1).Spring框架的两个最基本和最重要的包是org.springframework.beans.factory(该包中的主要接口是BeanFactory)和org.spr ...

  5. Spring属性注入的三种方式(超详细)

    属性注入的三种方式 使用set方法进行注入 使用有参构造函数进行注入 使用p名称空间注入 首先了解下面两个名词的含义: IOC:控制反转(Inversion of Control,缩写为IoC),是面 ...

  6. Spring系列之依赖注入的三种方式

    目录 一.依赖注入方式 1.使用属性的setXXX方法注入 2.构造函数注入 (1)按类型匹配入参type (2)按索引匹配入参index (3)联合使用类型和索引匹配入参[type和index一起使 ...

  7. Spring实现依赖注入的几种方式

    Spring实现依赖注入的几种方式 1.基于有参构造实现 <bean id="user" class="com.ccu.twj"><const ...

  8. 05.bean依赖注入的三种方式

    05.bean依赖注入的三种方式 1.概述 依赖注入 DI(Dependency Injection):它是 Spring 框架核心 IOC 的具体实现. 在编写程序时,通过控制反转,把对象的创建交给 ...

  9. spring依赖注入的4种方式

    Spring 依赖注入的4种方式 一.Set注入 必须要有setter方法 public class UserDao {public void test(){System.out.println(&q ...

最新文章

  1. div+css多浏览器测试方法
  2. Android技术经理+资深工程师+研发工程师-杭州
  3. 一个简单的运算表达式解释器例子
  4. 统计学习:三大奇技(1)
  5. python现在时间 命令_Python3 - 时间处理与定时任务
  6. easymodbus_easymodbus4j基于netty的modbus协议快速开发工具
  7. 企业级Ngnix基于域名的配置_server
  8. 给用户添加sudo功能
  9. 控制手机 滑动 蓝牙hid_米家LED灯泡蓝牙Mesh版,助你打造温馨的智能家庭
  10. python numpy diff_Python numpy.uint16方法代码示例
  11. 在线教育平台签约电子化:借电子印章提速控本、服务师生
  12. Android长截屏(滚动截屏)实现原理
  13. 回归分析什么时候取对数_线性回归模型,哪些变量取对数形式?
  14. 4款U盘操作系统推荐
  15. 利用贴图实现的人脸特效
  16. 晋升PPT这样写,帮你提高晋升概率
  17. 自己在用的KEIL颜色
  18. symfony入门学习资料之十六:Symfony框架启动过程介绍
  19. java socat_Socat虚拟串口无法识别
  20. 联想rd630服务器无显示,联想RD630服务器用户手册v1.2

热门文章

  1. c if标签怎么用android,android – 使用NDK将YUV解码为C/C++中的RGB
  2. linux集群组建和管理,Redis集群搭建与管理
  3. php 同步退出,Ucenter 的同步登录与同步退出
  4. css设置按钮竖直方向居中_前端设计师必须知道的10个重要的CSS技巧
  5. 关于STM32系列单片机中断触发时间问题
  6. DSB2017第一名代码尝试运行(记录自用)(二)
  7. 算法应用三:【图像分割】+【边缘检测】canny边缘检测--冈萨雷斯--《数字图像处理》
  8. java.lang.ExceptionInInitializerError解决办法
  9. DICOM C-GET vs C-MOVE
  10. express框架日志处理组件morgan