C++
文章平均质量分 83
bobbypapa
这个作者很懒,什么都没留下…
展开
-
KDE设区--C++的二进制兼容问题
定义关于ABI能做的和不能做的能做的不能做的动态库开发的相关技术位域标志(bitflags)D指针问题解答向没有D指针的类中添加新成员变量添加一个重新实现的虚函数使用一个新类向叶子类中添加虚函数用信号取代虚函数不兼容问题举例定义一个动态库的二进制兼容性指的是,一个依赖该动态库的可执行程序,在不重新编译的情况下,直接替换上该动态库的更新版本也能正确运行。译者解析:C++动态库的二进制兼容性,从本质上...翻译 2018-04-10 21:38:53 · 403 阅读 · 0 评论 -
C++多重继承时的二进制兼容问题分析
多重继承下的对象内存布局参考如下文章:https://www.cnblogs.com/itech/archive/2009/02/28/1399995.htmlhttps://blog.csdn.net/li_ning_/article/details/51893748https://blog.csdn.net/tangaowen/article/details/5830803多重继承时的二进制兼...原创 2018-04-10 21:41:15 · 467 阅读 · 0 评论 -
C++函数模板之模板参数的嵌套传递
以函数“指针“作为模板参数传递给函数模板,该函数“指针“即可以是普通函数,又可以是函数模板。#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>using namespace std;template<typename T, void(*pVisi...原创 2018-04-10 21:44:23 · 6430 阅读 · 1 评论 -
子类的构造与析构原理--深入阐述虚析构函数的重要性
通过反汇编(objdump -Dsx)分析得知,编译器在编译子类时,会自动把调用基类构造(析构)函数的代码嵌入到子类的构造函(析构)函数体中,也就是说,子类的构造(或析构)函数会自动调用基类的构造(或析够)函数。当子类的构造函数中没有显式调用基类构造函数时,会默认调用基类的无参构造函数,否则会调用基类的指定参数的某构造函数。从上述原理来看,子类指针指向子类对象的情况下,delete子类指针必然会调...原创 2018-04-10 21:45:45 · 945 阅读 · 0 评论 -
C++成员函数的拦截方法
概述利用preload方式对动态库中C语言函数调用进行拦截,有时候会达到剑走偏锋的效果。例如,在DVB+Dongle的产品中,我们就采用了这种方案,在不需要修改甚至重新编译原中间件及SDK的前提下,截获了SDK库中的部分接口调用,从而轻松抓取到OSD图层数据及解扰后的视频流。preload原理如下图,图1 注入libhack.so前后的接口调用路径如图,利用ld_preload向应用的进程空间高地...原创 2018-04-11 09:17:27 · 1884 阅读 · 0 评论