![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统编程
枫舞的季节
回家的路弯弯曲曲很容易令人迷失方向慢慢地慢慢地尘埃落下路已经走了大半了山的轮廓慢慢可以看得清了慢慢慢慢地揭开一层层的面纱就像翻起一张张的ppt 一样雾遮掩着山就像记忆中的家乡夜也在悄悄降临暮霭的颜色越来越迷人了
展开
-
编译nautilus文件管理器
nautilus 有下面的依赖,要处理好依赖然后才能编译好。nautilus 依赖 libgd(在subprojects目录下)nautilus 依赖 meson (生成ninja)nautilus 依赖ninja编译nautilus 依赖库,在meson.build 中gnome-autoar-0gail-3.0gnome-desktop-3.0libselinuxtrac...原创 2020-01-07 15:54:11 · 642 阅读 · 0 评论 -
windows 实现一个简单的自绘边框,具有最大化,最小化,icon,标题
实现一个简单的自绘边框,具有最大化,最小化,icon,标题.当用户嫌windows的框架颜色不好看,要修改窗口的框架,就自己在win32上实现它,因为内容是使用cef框架实现,使用duilib 等界面库和cef的demo代码兼容性有些问题.设计1 popup 窗口,overlapped 窗口有标题,菜单,一些限制2 定义客户区和非客户区目的是在不同的区域返回不同的标志 。主要在 WM_...原创 2019-08-28 17:30:17 · 915 阅读 · 0 评论 -
实现日志类
1 实现c++ 类似 cout 类2 就要实现 operator <<3 在最后的一个 << 输出4 输出到文件5 整个文件使用一个文件输出6 支持宽字符,ANSI , 整型,如果自己想可以扩展自己的类型。// logLib.cpp : Defines the entry point for the console application.//#inclu...原创 2019-08-12 22:28:42 · 515 阅读 · 0 评论 -
制造format_string helper函数
制造两个helper函数当我们要跨平台的时候CString 等都不能用了,这个时候需要一些顺手的工具下面两个函数是格式化字符串,返回string和wstringstd::string format_string(const char* lpszFormat,...){ va_list argList; va_start(argList, lpszFormat); int n = vs...原创 2019-08-09 19:12:04 · 195 阅读 · 0 评论 -
linux arm 使用cmake 进行编译的一个播放音乐的例子
搭建 arm linux 环境一般是这样: 1 下载交叉编译环境 2 下载cmake,如果版本低,那么下载源码自己编译 3 下载gdb新版本,我下的是7.5 4 编译 gdb ,然后配合 gdbserver可以远程调试,或者使用 idapro 进行调试 下面就是cmake的编译设置 指定 c编译器 , c++编译器, include 目录和library 目录就可以了.set(CM...原创 2018-08-13 10:26:59 · 689 阅读 · 0 评论 -
cmake 生成Android makefile
cmake 生成Android makefilewindows 下环境变量 NDK = E:\softstore\ndk\android-ndk-r16b NDK_CROSS = E:\softstore\ndk\android-ndk-r16b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin Path=...原创 2018-05-30 18:18:27 · 863 阅读 · 0 评论 -
sse 指令xmm寄存器和内存互相复制的问题
下面是一段可以执行的x64 的 nasm 汇编代码,类似可执行文件的外壳代码bits 64global startextern MessageBoxAsection .textstart: push rbp push rax push rbx push rcx push rdx push rsi push rdi pu原创 2018-01-09 16:24:06 · 4713 阅读 · 0 评论 -
IAT挂钩实现和检测
IAT - Import Address Table ,导入地址列表。这里保存着各个导入的函数加载后的地址,它是动态的,随着Dll的加载的位置不同而不同。PE - Portable Execute 可执行的程序结构。在PE结构中有个数据目录(Data Directory) 内部保存导入表的数据。格式大概如下: dll-数据 1 函数数据1 函数数据2 函数数据3 … dll-数原创 2017-08-28 16:04:02 · 777 阅读 · 0 评论 -
WOW64下的性能和内存消耗
WOW64下的性能和内存消耗由以下因素决定:处理器硬件。在芯片上执行指令仿真。在x64处理器上,指令由微架构本机执行。因此,x64下WOW64下的执行速度与32位Windows下的速度相似。在Intel Itanium处理器上,更多的软件涉及到仿真,因此性能受损。API thunk开销 与NT内核调用本身相比,这个开销很小。NT内核函数打算不频繁地被调用。虚拟内存大小。在Intel Ita翻译 2017-08-10 12:02:10 · 716 阅读 · 0 评论 -
CreateRemoteThread 使用的两个例子
CreateRemoteThread - 创建一个运行在其他进程的虚拟内存空间原创 2016-11-08 14:45:10 · 933 阅读 · 0 评论 -
DLL的绑定进程和解绑定进程引起的死锁
DLL的绑定和解绑定其实操作系统做了很多的工作,资源的分配和资源的释放,我们在使用的过程中,一不小心就会中招,这里说一下我遇到的一个死锁的问题。原创 2015-08-31 23:13:57 · 4350 阅读 · 0 评论 -
使用Appverifier 查找堆损坏
我们先看下面的代码 void ui::wnd::CDesktopWnd::Exe2Shortcut( LPCWSTR strFullPath, LPCWSTR strFileName, LPCWSTR shelllink_path) { CString strDescName = strFileName; if(strDescName == _T("iexplore.exe原创 2014-07-07 23:36:15 · 2275 阅读 · 0 评论 -
也谈隐藏盘符等windows 的管理员的策略实现
网上的文章都知道在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer 目录下有控制隐藏驱动器隐藏控制面板的键值,通过修改这些键值来控制是否可以改变windows的配置或者权限,或者掩藏或者显示什么。(必须要重新启动)那么谁来控制这个开关呢?原创 2014-06-28 17:05:46 · 1406 阅读 · 0 评论