- 博客(175)
- 资源 (11)
- 收藏
- 关注
原创 初识rust
rust 程序main 入口前,就已经安装了一个默认的panic handler ,用来打印一些全局的错误信息,和堆栈列表。可以看到,包括我们用windbg 看到的,比较完整的js 运行时的入口都看到了。看起来是利用panic 库进行一些基本的异常捕获与异常处理。PE 起始地址为140000000。
2023-11-05 18:36:30
511
原创 tracy 学习
适用于游戏和其他应用的实时、纳秒分辨率、远程控制、支持采样和帧率检测Tracy 支持分析 CPU(为 C、C++ 和 Lua 集成提供直接支持。同时,互联网上存在许多其他语言的第三方绑定,例如 Rust 、OCamlOdin。)、GPU(所有主要图形 API:OpenGL、Vulkan、Direct3D 11/12、OpenCL。)、内存分配、锁定、上下文切换、自动将屏幕截图归因于捕获的帧等等。Client ,采样数据的生产者,即我们要分析的程序。
2023-10-14 16:52:47
1024
原创 DirectX 11 调试记录(1)
记录render doc 和VS 调试DirectX 11 渲染流水线的过程Demo1:之后在程序中按F12,等到一帧的渲染流水线渲染流水线是什么呢?可以简化成一个模型,GPU 渲染是一个顺序化了的渲染指令列表,挨个执行渲染指令列表之后,我们即可得到一帧输出画面。
2023-07-31 11:05:34
242
原创 ffmpeg4.4 学习笔记 -(3)读取音频文件并用SDL 播放
ffmpeg4.4 学习笔记 -(1)将输入的视频文件转换为一帧一帧的ppm 文件_商少-优快云博客参考上述文章,通过ffmpeg 读取文件中的音频和读取文件中的视频的差异在于,我们应该处理AVFormatContext->streams中codec_type 为 AVMEDIA_TYPE_AUDIO 的流,即音频流。之后的找到逻辑类似,找到对应流的编码器并初始化该编码器,之后循环从AVFormatContext 中读取packet,如果packet 的streamindex 和 音频流的str
2022-02-19 17:39:21
1748
原创 ffmpeg(4.4) 学习笔记 使用mfc bitmap显示视频
ffmpeg4.4 学习笔记 -(2)读取视频文件并用SDL 显示_商少-优快云博客修改saveframe,改用mfc bitmap 显示视频:void CMFCAudioResampleDlg::OnBnClickedButtonChooseFile(){ CRGB24PlayerDlg dlg; std::thread([&dlg]() { dlg.DoModal(); }).detach(); // TODO: 在此添加控件通知处理程序代码 auto t
2022-02-14 13:20:01
1462
原创 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。可以先参考:优快云在制作播放器时,我们将使用 SDL 来输出媒体文件的音频和视频。 SDL 是一个出色的跨平台多媒体.
2022-02-13 11:36:02
1781
原创 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
1825
原创 使用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
808
原创 bash 函数使用
# 给函数传参的时候,直接将参数放在函数的右边就好了,不同参数以空格分割# 最好将参数放到“”,避免带空格的参数导致错误解析# 对应函数名后的参数位置,参数依次为 $1, $2, $3 … $n# $0 表示当前函数名# $# 表示参数数量# $* 和 $@ 表示传递给函数的所有参数,做参数转发的时候比较有用# * "$*" 或者“some $* some" 扩展为 "$1 $2 $n". 多个字符串被所见为一个字符串了,做参数转发的时候,不适用# * "$@..
2021-02-22 17:26:35
335
原创 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
593
翻译 如何阅读代码(翻译理解)
原文:https://selftaughtcoders.com/how-to-quickly-and-effectively-read-other-peoples-code/最好的阅读和理解别人的代码的方法1. 找到一段代码,你理解这段代码实现的功能是什么,跟踪这个功能的实现流程比如,我们知道某段代码其功能是,创建一个文件,文件内容为一系列电影的标题。应该做的事情是:1. 找到哪几行代码创建了文件2. 看如何将具体的内容写入文件3. 然后看文件内容是如何生成的我们可以称这些被连接
2021-01-24 00:45:23
502
转载 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
631
原创 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
174
原创 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
326
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
162
原创 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
482
原创 c++程序从开发到执行是,代码+编译器++cpu到实际执行的过程
最近读深度探索c++ 对象模型,一个深刻的体会就是c++ 代码到可执行文件,有漫长的过程,其中编译器为了我们做了太多的事情,尤其是当代c++ 11、c++ 14等等, 预编译,const expr 等等特性,编译器在其中承担了特别重要的角色c++ 从源码到可执行文件大概有编译+链接编译大概 = 预处理、预编译、词法分析、语法分析、语意分析、生成obj 文件链接大概是个寻找自己所需的东西的一个匹配的过程。这个过程里面,预处理、预编译,大有文章可做,比如,最最简单的宏展开,比如qt 里面的,预处理之
2020-08-19 11:01:30
532
原创 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
180
原创 进制相关算法
https://leetcode-cn.com/problems/excel-sheet-column-title/https://blog.youkuaiyun.com/qq_18218335/article/details/107861040参考这两个题目之后我们重新思考https://blog.youkuaiyun.com/qq_18218335/article/details/107861040 中的问题:A = 0B = 1Z = 25AA = 26AB = 27AAA26 进制—这个是我们整个思考的
2020-08-12 12:06:45
145
原创 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
128
原创 伤心笔记----一道小小的腾讯题目
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
156
原创 二维迷宫最短路径问题--广度优先--演示程序
#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
303
1
翻译 c++ 智能指针学习、使用
原文:https://www.fluentcpp.com/2018/12/25/free-ebook-smart-pointers/有一件事会迅速使您的c++代码变得混乱,并阻碍其可读性,那就是内存管理。如果做得不好,这可能会把一个简单的逻辑变成毫无表现力的混乱管理,并使代码失去对内存安全性的控制。确保所有对象的编程任务正确删除非常低的抽象层次而言,由于编写良好的代码基本上可以归结为尊重的抽象级别,你想让这些任务远离您的业务逻辑(或任何形式的逻辑)。智能指针可以有效地处理这个问题,并将您的代码从繁琐的
2020-06-22 03:05:32
679
翻译 practical c++ metaprogramming(翻译及学习)
前言感兴趣的推荐看原文吧,我这里只是学习记录,价值一般,就是做个记录https://www.researchgate.net/publication/323994820_Practical_C_Metaprogramming我们写模板元编程的想法已经有很长时间了,因为我们想要演示它变得多么容易。我们也想证明它的有用性和效率。我们的意思是它不仅是一个有效的解,有时还是最好的解。最后但并非最不重要的是,即使您不是每天都使用元编程,理解它的概念将使您成为更好的程序员:您将学会以不...
2020-06-14 23:48:12
658
原创 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
645
原创 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
564
原创 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
403
原创 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
599
原创 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
207
原创 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
346
原创 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
1148
原创 std::function 学习笔记(2)
隐约知道有个东西叫做std::function,但一直用的习惯的是c 风格函数指针,那么,什么是 std::function呢?这个新东西的应用场景是什么?和函数指针的区别是什么?什么时候该用函数指针,什么时候该用std::function?它潜在的代码的开销是什么?用函数指针初始化,std::function ,会如何呢?现在我们来用std::function 重写上面的函数:...
2020-04-14 00:28:17
342
原创 std::function 学习笔记
隐约知道有个东西叫做std::function,但一直用的习惯的是c 风格函数指针,那么,什么是 std::function呢?这个新东西的应用场景是什么?和函数指针的区别是什么?什么时候该用函数指针,什么时候该用std::function?它潜在的代码的开销是什么?用函数指针初始化,std::function ,会如何呢?1. std::function的 定义:https://zh.cpp...
2020-04-14 00:04:35
430
原创 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
620
原创 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
593
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
1308
原创 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
282
原创 性能分析的技巧
找到低性能的点写好测试代码用好测试工具不要盲目优化,因为优化可能反而导致效率降低,应该瞄准性能瓶颈再下手找到基准版本,即最朴素的实现方法,没有缓存,没有各种优化,然后分析->优化排名前三的时间点->优化直到没有可优化的地方。windows 平台工具推荐:https://blog.youkuaiyun.com/qq_18218335/article/details/89484397...
2020-03-13 00:11:52
188
获得鼠标下资源管理器路径(Demo)
2017-02-26
获得鼠标下资源管理器路径
2017-02-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人