函数指针的正向调用案例
来源:互联网 发布:php固定资产管理系统 编辑:程序博客网 时间:2024/06/05 21:18
传智扫地僧课程学习笔记。
上节课是回调函数,即反向调用,
老实说,我对这个反向,一直形成不了感性的认识,
借着正向调用,来对比记忆吧,
正向调用,就是一个应用程序,调用很多dll,
我们在windows下可以通过winsdk,把dll加载到程序中,
然后查找函数地址,进行调用,
下面是老师课上示例代码,
先建立MFC项目,属性设置包括,1基于对话框 ,2不使用unicode,
然后添加一个button,双击后,就可以实现代码级别的修改了,如下了,
//函数指针类型 //客户端初始化 获取handle上下typedef int (*CltSocketInit)(void **handle /*out*/); //客户端发报文typedef int (*CltSocketSend)(void *handle /*in*/, unsigned char *buf /*in*/, int buflen /*in*/);//客户端收报文typedef int (*CltSocketRev)(void *handle /*in*/, unsigned char *buf /*in*/, int *buflen /*in out*/);//客户端释放资源typedef int (*CltSocketDestory)(void *handle/*in*/);//------------------第一套api接口---End-----------------------------------//void C函数指针正向调用Dlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码AfxMessageBox("ddddd");HINSTANCE hInstance;CltSocketInitcltSocketInit; //用函数指针类型 定义 函数指针变量 CltSocketSendcltSocketSend;CltSocketRevcltSocketRev;CltSocketDestorycltSocketDestory;//找函数的入口地址 hInstance=::LoadLibrary("c:/socketclient.dll");cltSocketInit =(CltSocketInit)::GetProcAddress(hInstance, "cltSocketInit");cltSocketSend =(CltSocketSend)::GetProcAddress(hInstance, "cltSocketSend");cltSocketRev =(CltSocketRev)::GetProcAddress(hInstance, "cltSocketRev");cltSocketDestory =(CltSocketDestory)::GetProcAddress(hInstance, "cltSocketDestory");void*handle = NULL;unsigned char buf[2048];intbuflen = 9;unsigned charout[2048];intoutlen;intret = 0;strcpy((char *)buf, "aaaabbbdddddddddddddsssssssssss");ret = cltSocketInit(&handle);ret = cltSocketSend(handle, buf, buflen);ret = cltSocketRev(handle, out, &outlen);ret = cltSocketDestory(handle);}
0 0
- 函数指针的正向调用案例
- 利用函数指针实现动态库的动态调用——函数指针正向调用法
- 函数指针 的调用
- 函数指针的调用
- 函数指针基础及应用(正向调用、动态库升级成框架)
- C/C++高阶语法:函数指针及其应用,动态链接库,正向调用
- 27.指针函数的调用
- 函数指针调用类的成员函数
- 函数调用的本质与函数指针
- 函数指针调用类的成员函数
- 函数指针与指针函数,以及它们的调用
- C++函数的传值调用&指针调用&引用调用
- Matthew Curland的VB函数指针调用
- 用指针调用函数的不同形式
- Matthew Curland的VB函数指针调用
- 空指针的成员函数调用
- 空指针的成员函数调用
- 关于函数指针的调用约定修饰
- WINDWOS编程学习3:windwos HolleMessage程序说明
- 替换空格
- Unity3D手游开发日记(11) - 基于共享骨骼简单高效的换装方案
- js的apply函数"源码"
- Mac下搭建React Native iOS开发环境
- 函数指针的正向调用案例
- centos7.2安装dcos
- Android 低版本 volley 401 错误处理
- Nt**、Zw**和Rtl** 开头的函数介绍
- datagrid的columns属性支持对象的子属性(类似user.userName)的方法
- C++文件读写详解(ofstream,ifstream,fstream)
- 面向对象
- 第一周-机器学习-代价函数_intuition
- Binary Tree Vertical Order Traversal