自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

商少

切勿好高骛远,患得患失

  • 博客(175)
  • 资源 (11)
  • 收藏
  • 关注

原创 初识rust

rust 程序main 入口前,就已经安装了一个默认的panic handler ,用来打印一些全局的错误信息,和堆栈列表。可以看到,包括我们用windbg 看到的,比较完整的js 运行时的入口都看到了。看起来是利用panic 库进行一些基本的异常捕获与异常处理。PE 起始地址为140000000。

2023-11-05 18:36:30 410

原创 tracy 学习

适用于游戏和其他应用的实时、纳秒分辨率、远程控制、支持采样和帧率检测Tracy 支持分析 CPU(为 C、C++ 和 Lua 集成提供直接支持。同时,互联网上存在许多其他语言的第三方绑定,例如 Rust 、OCamlOdin。)、GPU(所有主要图形 API:OpenGL、Vulkan、Direct3D 11/12、OpenCL。)、内存分配、锁定、上下文切换、自动将屏幕截图归因于捕获的帧等等。Client ,采样数据的生产者,即我们要分析的程序。

2023-10-14 16:52:47 377

原创 DirectX 11 调试记录(1)

记录render doc 和VS 调试DirectX 11 渲染流水线的过程Demo1:之后在程序中按F12,等到一帧的渲染流水线渲染流水线是什么呢?可以简化成一个模型,GPU 渲染是一个顺序化了的渲染指令列表,挨个执行渲染指令列表之后,我们即可得到一帧输出画面。

2023-07-31 11:05:34 130

原创 最简单的基于FFMPEG 4.4 的图形编码器(参考雷神的文章)

ffmpeg 4.4 avframe to mjpeg

2022-07-06 12:55:44 774

原创 ffmpeg4.4 学习笔记 -(3)读取音频文件并用SDL 播放

ffmpeg4.4 学习笔记 -(1)将输入的视频文件转换为一帧一帧的ppm 文件_商少-CSDN博客参考上述文章,通过ffmpeg 读取文件中的音频和读取文件中的视频的差异在于,我们应该处理AVFormatContext->streams中codec_type 为 AVMEDIA_TYPE_AUDIO 的流,即音频流。之后的找到逻辑类似,找到对应流的编码器并初始化该编码器,之后循环从AVFormatContext 中读取packet,如果packet 的streamindex 和 音频流的str

2022-02-19 17:39:21 1673

原创 ffmpeg(4.4) 学习笔记 使用mfc bitmap显示视频

ffmpeg4.4 学习笔记 -(2)读取视频文件并用SDL 显示_商少-CSDN博客修改saveframe,改用mfc bitmap 显示视频:void CMFCAudioResampleDlg::OnBnClickedButtonChooseFile(){ CRGB24PlayerDlg dlg; std::thread([&dlg]() { dlg.DoModal(); }).detach(); // TODO: 在此添加控件通知处理程序代码 auto t

2022-02-14 13:20:01 1247

原创 ffmpeg4.4 学习笔记 -(2)读取视频文件并用SDL 显示

使用SDL 2.0.20Simple DirectMedia Layer - SDL version 2.0.20 (stable)https://www.libsdl.org/release/SDL2-devel-2.0.20-VC.zip参考文章:ffmpeg tutorial学习文章的同时基于ffmpeg 4.4 和 sdl 2.0 做同样功能的mfc demo。可以先参考:CSDN在制作播放器时,我们将使用 SDL 来输出媒体文件的音频和视频。 SDL 是一个出色的跨平台多媒体.

2022-02-13 11:36:02 1659

原创 ffmpeg4.4 学习笔记 -(1)将输入的视频文件转换为一帧一帧的ppm 文件

ffmpeg tutorial学习如上链接,同时以ffmpeg 4.4 版本做相关实现,中间可能有一些差异和坑,在此记录。本文实现了一个将输入的视频文件转换为一帧一帧的ppm 文件的过程。基本概念容器container,指定了视频信息存储的格式,常见的如avi,quicktime,flv流streams,音频流,视频流,流,可以理解为,随着时间的推移提供的一系列数据元素,比如每秒可以获取30 帧的视频数据。帧 frames,流里面的数据。每个frames 被不同的codec(编码

2022-02-08 14:18:08 1662

原创 使用c++11 + 来优化常见的printf 和sprintf 操作

//https://docs.microsoft.com/en-us/archive/msdn-magazine/2015/march/windows-with-c-using-printf-with-modern-cinline void Print(char const * const value) noexcept{ Print("%s", value);}inline void Print(wchar_t const * const value) noexcept{ Print...

2022-01-23 19:24:39 688

原创 std::void_t 一个神奇的类型(占坑)

这个类型太神奇了,我记得有一个youtube 的cpp 大会的视频,待整理

2021-04-11 16:19:05 306

原创 bash 函数使用

# 给函数传参的时候,直接将参数放在函数的右边就好了,不同参数以空格分割# 最好将参数放到“”,避免带空格的参数导致错误解析# 对应函数名后的参数位置,参数依次为 $1, $2, $3 … $n# $0 表示当前函数名# $# 表示参数数量# $* 和 $@ 表示传递给函数的所有参数,做参数转发的时候比较有用# * "$*" 或者“some $* some" 扩展为 "$1 $2 $n". 多个字符串被所见为一个字符串了,做参数转发的时候,不适用# * "$@..

2021-02-22 17:26:35 264

原创 c++-function-atoi

c++ atoi 设计与实现http://www.cplusplus.com/reference/cstdlib/atoi/转换一个string 为 数字声明:int atoi(const char* str);解析传入的c-string 内容,并转换其内容为整数,最终结果,以int 的形式返回。函数开始将丢弃尽可能多的空白字符(通过isspace判断),直到第一个非空白字符。之后,从这个字符开始,取一个可选的+或-符号,紧接着读取尽可能多的10进制数字,并转换为对应的数值。.

2021-02-18 20:33:15 411

翻译 如何阅读代码(翻译理解)

原文:https://selftaughtcoders.com/how-to-quickly-and-effectively-read-other-peoples-code/最好的阅读和理解别人的代码的方法1. 找到一段代码,你理解这段代码实现的功能是什么,跟踪这个功能的实现流程比如,我们知道某段代码其功能是,创建一个文件,文件内容为一系列电影的标题。应该做的事情是:1. 找到哪几行代码创建了文件2. 看如何将具体的内容写入文件3. 然后看文件内容是如何生成的我们可以称这些被连接

2021-01-24 00:45:23 393

转载 2020 pure c++大会视频和ppt(转载)

特别推荐,喜欢cpp 的,一定看看2020 pure c++大会视频和ppt编辑时间:2021-01-12 17:42:41作者:qicosmos2条评论2020 pure c++大会视频和pptJon Kalb C++ Today: The Beast is Back 【视频】【PPT】Michael Wong C++20 features and future direction 应嘉宾要求ppt只对参会观众开放李颖欣 超百亿请求背后的高性能服务器引擎:搜狗C++...

2021-01-16 15:46:06 527

原创 flutter threading isolates future async and await

flutter 的线程模型翻译https://buildflutter.com/flutter-threading-isolates-future-async-and-await/isolates事件循环 & 微任务(EventLoops & Microtasks)Create new IsolateAsync & AwaitFutureAsync & Await实际问题另一个介绍Future 相关的细节翻译https://buildflutter.com/flutter-

2020-11-29 20:50:51 135

原创 c++ lock_free 一些相关资料

http://www.purecpp.org/detail?id=2096https://www.bilibili.com/video/av47644468/https://preshing.com/20130930/double-checked-locking-is-fixed-in-cpp11/http://www.gotw.ca/publications/https://www.youtube.com/watch?v=c1gO9aB9nbs

2020-08-24 14:26:00 236 1

原创 二分的一些case

#include <iostream>#include <cassert>// 查找,返回下标,找不到返回-1int binary_search_org(int* data, int iBegin, int iEnd, int iTarget){ while (iBegin <= iEnd) { int mid = iBegin + (iEnd - iBegin) / 2; auto iCurrentVal = data[mid]; if (iCurr

2020-08-20 17:08:03 116

原创 vs_rtti_类型识别的一些细节

#include <typeinfo>#include <iostream>class Person {public: virtual ~Person() {}};class Employee : public Person { };int main(){ Person person; Employee employee; Person* ptr = &employee; Person& ref = employee; std::c.

2020-08-19 15:49:45 386

原创 c++程序从开发到执行是,代码+编译器++cpu到实际执行的过程

最近读深度探索c++ 对象模型,一个深刻的体会就是c++ 代码到可执行文件,有漫长的过程,其中编译器为了我们做了太多的事情,尤其是当代c++ 11、c++ 14等等, 预编译,const expr 等等特性,编译器在其中承担了特别重要的角色c++ 从源码到可执行文件大概有编译+链接编译大概 = 预处理、预编译、词法分析、语法分析、语意分析、生成obj 文件链接大概是个寻找自己所需的东西的一个匹配的过程。这个过程里面,预处理、预编译,大有文章可做,比如,最最简单的宏展开,比如qt 里面的,预处理之

2020-08-19 11:01:30 473

原创 enable_shared_from_this 的一些小细节

参考:https://stackoverflow.com/questions/712279/what-is-the-usefulness-of-enable-shared-from-this#include <memory>using namespace std;class Y : public enable_shared_from_this<Y>{public: shared_ptr<Y> f() { return shared_from_thi

2020-08-19 09:41:29 139

原创 进制相关算法

https://leetcode-cn.com/problems/excel-sheet-column-title/https://blog.csdn.net/qq_18218335/article/details/107861040参考这两个题目之后我们重新思考https://blog.csdn.net/qq_18218335/article/details/107861040 中的问题:A = 0B = 1Z = 25AA = 26AB = 27AAA26 进制—这个是我们整个思考的

2020-08-12 12:06:45 103

原创 single_list reverse with k

//1,2,3,4,5,6,7,8,9,10//k == 3//3,2,1,6,5,4,9,8,7,10#include <stdio.h>#include <vector>struct _LIST_NODE{ int val = 0; _LIST_NODE* next = nullptr; _LIST_NODE() :val(0), next(nullptr) {} _LIST_NODE(int _val):val(_val),next(nullptr){}}

2020-08-12 10:33:34 93

原创 伤心笔记----一道小小的腾讯题目

A = 0B = 1Z = 25AA = 26AB = 27AAA实现StrToInt#include <assert.h>#include <iostream>int MyStrToInt(const char* str){ auto length = strlen(str); if (length == 1) { return str[0] - 'A'; } int result = str[length - 1] - 'A'; auto

2020-08-07 14:01:47 121

原创 二维迷宫最短路径问题--广度优先--演示程序

#include <stdio.h>#include <iostream>#include <vector>#include <map>#include <windows.h>#include <cstdlib>#include <iostream>#include <ctime>#include <tuple>#include <queue>#include <

2020-07-30 13:20:56 249 1

翻译 c++ 智能指针学习、使用

原文:https://www.fluentcpp.com/2018/12/25/free-ebook-smart-pointers/有一件事会迅速使您的c++代码变得混乱,并阻碍其可读性,那就是内存管理。如果做得不好,这可能会把一个简单的逻辑变成毫无表现力的混乱管理,并使代码失去对内存安全性的控制。确保所有对象的编程任务正确删除非常低的抽象层次而言,由于编写良好的代码基本上可以归结为尊重的抽象级别,你想让这些任务远离您的业务逻辑(或任何形式的逻辑)。智能指针可以有效地处理这个问题,并将您的代码从繁琐的

2020-06-22 03:05:32 605

翻译 practical c++ metaprogramming(翻译及学习)

前言感兴趣的推荐看原文吧,我这里只是学习记录,价值一般,就是做个记录https://www.researchgate.net/publication/323994820_Practical_C_Metaprogramming我们写模板元编程的想法已经有很长时间了,因为我们想要演示它变得多么容易。我们也想证明它的有用性和效率。我们的意思是它不仅是一个有效的解,有时还是最好的解。最后但并非最不重要的是,即使您不是每天都使用元编程,理解它的概念将使您成为更好的程序员:您将学会以不...

2020-06-14 23:48:12 557

原创 std::shared_ptr 中deleter 的内存模型、调用逻辑

template <class _Ux, class _Dx, enable_if_t<conjunction_v<is_move_constructible<_Dx>, _Can_call_function_object<_Dx&, _Ux*&>, _SP_conve...

2020-05-03 16:56:43 562

原创 std::unique_ptr 阅读笔记

demo:#include<memory>#include<windows.h>const wchar_t* const FILE_PATH = LR"(D:\temp\test.txt)";#pragma optimize("",off)struct HANDLEDeleter{ void operator()(HANDLE hHandle)const...

2020-05-02 23:34:02 500

原创 c++17 std::unique_ptr 阅读笔记(预告)

template <class _Ty1, class _Ty2, bool = is_empty_v<_Ty1> && !is_final_v<_Ty1>>class _Compressed_pair final : private _Ty1 { // store a pair of values, deriving from empty...

2020-05-02 00:24:28 334

原创 windbg script learn

从需求出发:定位一个句柄占用导致的文件无法删除的问题:#include <iostream>#include <string>#include <filesystem>#include <windows.h>std::wstring getlineFromConsole(){ std::wstring strRet; std:...

2020-04-21 00:18:35 518

原创 IUnknown 必须得是虚表中的第一个指针,必须!!!!!!!!深夜发现bug

https://docs.microsoft.com/en-us/windows/win32/api/unknwn/nn-unknwn-iunknownEnables clients to get pointers to other interfaces on a given object through theQueryInterfacemethod, and manage the...

2020-04-18 00:27:41 170

原创 std::function 学习笔记(4)

#pragma oncenamespace MyFunctionNameSpace{// size in pointers of std::function and std::any (roughly 3 pointers larger than std::string when building debug) constexpr int _Small_object_num_ptrs = ...

2020-04-15 10:11:29 289

原创 std::function 学习笔记(3)

下面是我的std::function的阅读笔记:// CLASS TEMPLATE functiontemplate <class _Fty>class function : public _Get_function_impl<_Fty>::type { // wrapper for callable objects // 注意这里,继承的是_Get_funct...

2020-04-14 23:12:15 954

原创 std::function 学习笔记(2)

隐约知道有个东西叫做std::function,但一直用的习惯的是c 风格函数指针,那么,什么是 std::function呢?这个新东西的应用场景是什么?和函数指针的区别是什么?什么时候该用函数指针,什么时候该用std::function?它潜在的代码的开销是什么?用函数指针初始化,std::function ,会如何呢?现在我们来用std::function 重写上面的函数:...

2020-04-14 00:28:17 284

原创 std::function 学习笔记

隐约知道有个东西叫做std::function,但一直用的习惯的是c 风格函数指针,那么,什么是 std::function呢?这个新东西的应用场景是什么?和函数指针的区别是什么?什么时候该用函数指针,什么时候该用std::function?它潜在的代码的开销是什么?用函数指针初始化,std::function ,会如何呢?1. std::function的 定义:https://zh.cpp...

2020-04-14 00:04:35 352

原创 utf8tows Windows vs2019 c++ 17 有一个意想不到的锁可能影响性能,用的时候,千万小心

#include <iostream>#include <algorithm>#include <vector>#include <iterator>#include <thread>#include <atlstr.h>#include <atlconv.h>#include <casser...

2020-04-11 14:56:29 535

原创 c++ smart_ptr(vs2019 c++ 17) learn 2

#include <memory>#include <iostream>#include <cstdio>#pragma optimize("",off)char* g_temp_test_valid = nullptr;std::shared_ptr<char[]> getMem() { std::shared_ptr<char...

2020-04-05 21:06:04 497 1

原创 c++ smart_ptr(vs2019 c++ 17) learn 1

#include <memory>#include <iostream>#include <cstdio>#pragma optimize("",off)char* g_temp_test_valid = nullptr;std::shared_ptr<char[]> getMem() { std::shared_ptr<char...

2020-04-05 00:01:29 1219

原创 c++ typeid template 编程小玩具,splitstring to container

#include <iostream>#include <string>#include <regex>#include <vector>#include <set>#include <type_traits>#include <list>#include <unordered_set>...

2020-03-27 20:17:57 237

原创 性能分析的技巧

找到低性能的点写好测试代码用好测试工具不要盲目优化,因为优化可能反而导致效率降低,应该瞄准性能瓶颈再下手找到基准版本,即最朴素的实现方法,没有缓存,没有各种优化,然后分析->优化排名前三的时间点->优化直到没有可优化的地方。windows 平台工具推荐:https://blog.csdn.net/qq_18218335/article/details/89484397...

2020-03-13 00:11:52 148

ffmpeg avframe to jpeg

ffmpeg avframe to jpeg

2022-07-06

ffmpeg 4.4 sdl2 音频播放器

ffmpeg 4.4 sdl2 音频播放器

2022-02-19

ffmpeg 4.4 player with rgb24 bitmap

ffmpeg 4.4 player with rgb24 bitmap

2022-02-14

ffmpeg sdl2.0 rgb24 player

ffmpeg 4.4 + sdl 2.0 rgb24 格式播放器

2022-02-13

ffmpeg demo,将输入文件中的视频流转换为单帧ppm 文件rgb24格式

ffmpeg demo,将输入文件中的视频流转换为单帧ppm 文件rgb24格式

2022-02-08

进程创建监控

Ring3+Ring0 控制进程创建

2017-07-31

APC注入实现代码

纯Ring0 + Ring3 交互

2017-07-30

WhoUseMe-查看谁占用了我的文件

Win7-64-bit

2017-07-30

获得鼠标下资源管理器路径(Demo)

2017-02-26

获得鼠标下资源管理器路径

2017-02-25

当前鼠标下的文件夹(桌面)路径

当前鼠标下的文件夹(桌面)路径

2017-02-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除