C/C++
文章平均质量分 63
A.A
这个作者很懒,什么都没留下…
展开
-
C++ 多维数组 分配连续内存空间
3维数组举例int*** malloc_arr(int x, int y, int z, int default_value = 0){ // 分配空间 int*** arr = new int** [x]; arr[0] = new int* [x * y](); arr[0][0] = new int[x * y * z](); // 初始化第二维 for (int i = 1; i < x; i++) arr[i] = arr[i - 1] + y; // 初始化第三维原创 2021-10-25 17:54:28 · 974 阅读 · 0 评论 -
.osr 文件格式解析(四) - LifeBarGraph和TimeStamp
.osr 文件格式解析(四) - LifeBarGraph和TimeStamp原创 2016-05-13 23:18:19 · 1220 阅读 · 0 评论 -
.osr 文件格式解析(三) - 读取OSB文件
.osr 文件格式解析(三) - 读取OSB文件原创 2016-05-12 17:09:39 · 2048 阅读 · 0 评论 -
.osr 文件格式解析(二) - 数据类型
.osr 文件格式解析(二) - 数据类型原创 2016-05-11 22:41:37 · 980 阅读 · 0 评论 -
.osr 文件格式解析(一) - 官方格式说明
#.osr 文件格式解析(一) - 官方格式说明原创 2016-05-11 11:13:48 · 2152 阅读 · 0 评论 -
.osr 文件格式解析(五) - 回放数据ReplayData
.osr 文件格式解析(五) - 回放数据ReplayData原创 2016-05-16 18:50:11 · 1062 阅读 · 0 评论 -
Ogre 渲染流程
在ogre中,调用renderOneFrame就是渲染一帧的画面, 所以要了解Ogre渲染流程就直接单步调试跟着renderOneFrame走就好了。本文以调用栈的方式展示ogre渲染流程,由于调用栈是在太深,所以会根据功能分块描述渲染进行到哪一步。1. renderOneFrame下面是主要调用堆栈,这部分主要描述了:所谓渲染实际上就是更新视口的画面,而画面则来自与视口绑定的摄像机所看到的...原创 2019-06-15 18:21:14 · 480 阅读 · 0 评论 -
C++ 虚函数表
参考文章:C++ 虚函数表解析虚函数表对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,...原创 2019-05-06 18:35:58 · 144 阅读 · 0 评论 -
虚函数、纯虚函数、构造函数、析构函数
构造函数析构函数虚函数X√纯虚函数X√(必须有函数体)class AAA{public: AAA() {}; virtual ~AAA() = 0;};AAA::~AAA(){}class BBB : public AAA{public: virtual ~BBB() {};};...原创 2019-05-05 16:08:12 · 387 阅读 · 0 评论 -
透明颜色混合算法
一般数学计算中,颜色取值是:R,G,B∈[0,255],A∈[0,1]R,G,B∈[0,255],A∈[0,1] R,G,B \in \left [ 0, 255 \right ], A\in \left [ 0, 1 \right ] 所以对于一般的颜色混合有:Color(RGBA)=Color(R1G1B1A1)+Color(R2G2B2A2)Color(RGBA)=Color(R1G1B...原创 2018-07-07 17:43:23 · 5702 阅读 · 4 评论 -
PhotoShop中的自由变换UI实现
PhotoShop中的自由变换UI 如上图,在ps的自由变换中常见的操作是,黑色矩形经过旋转变为绿色矩形,再缩放变为蓝色矩形数学建模求解一个矩形的变换由以下参数记录坐上角坐标(X,Y),矩形宽高(W,H),矩形旋转角度(A)。把上图的变换进行数学建模,得到下面的图: 其中:BDEF为要变换的矩形基准,点A是对角线的交点,B(rectX, rectY),BD=rectW,B...原创 2018-06-13 16:32:55 · 882 阅读 · 1 评论 -
结构化异常处理(SEH)在MSVC和MinGW上的使用
结构化异常处理(SEH)在MSVC和MinGW上的使用SEH 即 Structured Exception Handling,结构化异常处理。是 M$ 在 Windows 下实现的一套异常处理机制,用于支持软件和硬件异常处理。SEH 作为 Windows 特有的机制,同时也是 Windows 溢出攻击中常见的利用的途径之一。关于SEH的详细分析,请看Matt Pietrek的文章(原文是发...原创 2018-05-10 10:22:23 · 2273 阅读 · 0 评论 -
深入解析结构化异常处理(SEH)
A Crash Course on the Depths of Win32 Structured Exception Handling深入解析结构化异常处理(SEH)原文:http://www.microsoft.com/msj/0197/exception/exception.aspx Matt Pietrek 著 董岩 译 在Win32操作系统提供的所有功能中,使用最广泛...转载 2018-05-09 15:33:40 · 3285 阅读 · 0 评论 -
关于CrashRpt的研究
CrashRpt是轻量级的开源错误报告库 - 官网 - 下载链接 编译工程从官网下载下最新版(v.1.4.3_r1645),解压后发现是visual studio的工程,使用的是vs2010。但我用得是vs2017,所以在编译之前要做一下处理: 对于每一个项目,把项目常规属性的windows SDK 版本和平台工具集改成自己VS对应的版本 然后重新生成解决方案,即可编译通过。...原创 2018-05-02 10:43:08 · 2017 阅读 · 0 评论 -
生成dump文件
dump文件生成#pragma once#define _CRT_SECURE_NO_WARNINGS#include <windows.h>#include <Dbghelp.h>#include <iostream>#include <vector>#include <tchar.h>using names...原创 2018-04-11 15:54:33 · 507 阅读 · 0 评论 -
VS2017 远程调试linux:新增/修改远程计算机连接
Tools > Options > Cross Platform > Connection Manage 工具>选项>跨平台>连接管理器原创 2017-07-17 11:23:19 · 6811 阅读 · 0 评论 -
VS2017 远程调试linux出现的错误:Cannot access memory at address 0x570
描述新建的linux默认工程#include <stdio.h>int main(){ printf("hello from linux_test!\n"); return 0;}编译时没有任何问题:1>------ 已启动生成: 项目: arptools, 配置: Debug x64 ------1>Validating architecture1>Validating s原创 2017-07-11 10:32:45 · 29658 阅读 · 0 评论 -
Java里字符串的hash算法
Java的hash算法,简单小巧的的散列方法 public int hashCode() { int h = hash; if (h == 0) { int off = offset; char val[] = value; int len = count; for (int i = 0; i < len; i++原创 2016-08-15 20:19:27 · 5373 阅读 · 1 评论 -
c++ 子类“重载”父类的方法
其实,并没有‘子类“重载”父类的方法’这种说法。《C++Primer Plus》 中说道:如果基类声明被重载了,则应该在派生类中重新定义所有的基类版本。如果在派生类中只重新定义一个版本,其他版本将会被隐藏,派生类对象将无法使用它们。原创 2016-07-07 00:23:29 · 12245 阅读 · 0 评论