VC版本的MakeObjectInstance把WNDPROC映射到类的成员函数
2016-09-02 15:28
337 查看
这段时间用VC封装Windows类库,没有MakeObjectInstance处理窗口消息确实不爽,又不想使用MFC的消息映射,这玩意的效率和美观只能呵呵。
至于MakeObjectInstance是什么,Delphi转过来的同学必然很了解这个方便的功能,就是动态构造一个函数把普通函数转到一个类的成员函数。
VC X86实现起来没问题,但是X64实现起来的麻烦在于不能内嵌汇编了,X64必须结合ASM文件编译的obj(这一点还是感激Delphi的编译器,X86和X64都可以内联汇编)。
我的实现方案是通过构造一段ShellCode来达到目的。
用法类似的如下
再例如
http://www.raysoftware.cn/?p=552
至于MakeObjectInstance是什么,Delphi转过来的同学必然很了解这个方便的功能,就是动态构造一个函数把普通函数转到一个类的成员函数。
VC X86实现起来没问题,但是X64实现起来的麻烦在于不能内嵌汇编了,X64必须结合ASM文件编译的obj(这一点还是感激Delphi的编译器,X86和X64都可以内联汇编)。
我的实现方案是通过构造一段ShellCode来达到目的。
相关文章推荐
- 如何将GTK+-2.0的信号、回调处理映射成类成员函数的调用--VC中测试(单类继承)
- 如何将GTK+-2.0的信号、回调处理映射成类成员函数的调用--VC中测试(虚拟继承类及多继承)
- Object/DataSet Relational Mapping(对象/数据集关系映射)完整版本下载
- 定义VC 消息映射函数小结
- 非静态成员函数做窗口过程(非映射表实现),成员函数做消息映射
- 如何将GTK+-2.0的信号、回调处理映射成类成员函数的调用--示例
- Object/DataSet Relational Mapping(对象/数据集关系映射)完整版本
- 什么时候调用const版本的成员函数
- 利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数
- vc++ 成员函数的使用
- 重载成员函数的常成员函数版本
- 定义VC 消息映射函数小结
- VC++CString 成员函数用法大全
- 不使用汇编在vc中转换类的成员函数为一个线程的通用代码
- VC_CString成员函数
- parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)VC以类的成员函数作为线程调用函数时易出错问题解决办法
- vc 中内嵌汇编 怎样调用类的成员函数?
- 定义VC 消息映射函数小结
- VC++CString_成员函数用法
- 第七周 项目二:成员函数、友元函数、一般函数之区别(实现三个版本的求两点间距离)