博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于C++类回调函数中传进成员变量的方法
阅读量:6953 次
发布时间:2019-06-27

本文共 604 字,大约阅读时间需要 2 分钟。

hot3.png

一般的情形下C++类中的回调函数都被声明为静态类型的函数,而且函数参数固定不能改写,类中的静态函数的难题在于如何在静态函数(回调函数)里获取成员变量的值。此前因为项目需要在回调中获取该类型的数据,纠结半天,参考网上;得出一些方法:

可以这样来做,例子:

typedef int(LPADDR)(const char); //函数指针 class A { public: A() { pAThis = this; //在构造函数中获取实例指针 hinst = ::LoadLibrary("XXX.dll"); lprLoc = (LPADDR)::GetProcAddress(hinst,"xxxx"); } LPADDR lprLoc; HINSTANCE hinst; static A* pAThis; //静态指针 static void Test() //静态函数,类似回调 { LPADDR loc = pAThis->lprLoc; //在此处可以获取到成员变量的值 if(-1 != loc("E:\xxxx\w1.jpg")) { printf("Success!"); } } }; A* A::pAThis = NULL; //静态成员初始化

这只是一个方法,可能还有更好的方法。

转载于:https://my.oschina.net/u/733649/blog/208163

你可能感兴趣的文章
selecter模块默认使用epoll 实现IO多路复用,展示单线程的并发效果
查看>>
Fall 2018 IS542 Final
查看>>
PHP下载压缩包文件
查看>>
【idea】Springboot整合jpa
查看>>
Android之开发杂记(三)
查看>>
Struts2之param标签的使用
查看>>
bzoj1497(最小割)
查看>>
【转】C#中将JSon数据转换成实体类,将实体类转换成Json
查看>>
在windows上使用ssh秘钥连接git服务器
查看>>
STL 之容器适配器
查看>>
Redis集群master选举时长测试
查看>>
linux IPC对象的持续性的说明
查看>>
创建带返回值的函数
查看>>
CS799 - Data-Driven Development with Python
查看>>
shell 脚本 变量使用,取消一个变量,echo
查看>>
Java中的synchronized、volatile、ReenTrantLock、AtomicXXX
查看>>
mysql语句判断一天操作记录的个数
查看>>
reduce|sum
查看>>
WCF Ria Services
查看>>
mysql之 mysql 5.6不停机主从搭建(一主一从基于GTID复制)
查看>>