自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

justin_bkdrong的专栏

勿在浮沙筑高台

  • 博客(94)
  • 资源 (21)
  • 收藏
  • 关注

原创 vs2017 突然出现的错误 “未将对象引用设置到对象的实例“

在网上也查了很多人遇到的问题。各种的触发条件,各种的解决方法。(ms +QT,ms+mysql,ms + web) ,都没有找到根本的原因。我用windbg 来调试 vs ,看到了根本的问题(或许我遇到的和你们不一样)。vs 发现了异常,但是弹出了个莫名其妙的提示。并且点掉后继续弹出,我不断地点击掉,最后能够正常的启动。2 使用windbg 调试,也什么错误都没有,那就是vs自身的问题。检查断点的时候发现原来的文件变动并且校验和没有匹配,因此就发生异常。可能是断点引起的问题,而且后续都是对断点的处理。

2024-02-28 10:31:09 585

原创 自动回收内存的小工具

这是一个小工具,或者小玩意,它作用不大,可以用于不喜欢C++的只能指针的场景。它基于类的构造函数和析构函数原理,利用隐式的调用取释放申请的内存。基于的C++ 版本,c++98头文件代码#ifndef _memAutoFree_#define _memAutoFree_#include <map>//// 一种简单内存管理的玩具类,没什么大的作用,就是在作用域内// 如果使用它,则它管理的内存都自动释放;在栈中使用如此,全局使用亦如此。// //// 简单的自动回收内存方法

2022-03-29 10:04:53 733

原创 windows 端 1 对 1 的简单进程间通讯

windows 端 1 对 1 的简单进程间通讯小王抱着一堆书到了邮局邮递到小李家。邮递员到了小李家,按下门铃,小李发现书送到了,放书到屋内,然后按照小王的地址给小王回信。这就是一般的通讯过程。小王是源进程小李是目标进程邮局是通讯通道门铃是通知事件书是数据地址是大家规定的通讯目的地标识。划分为三个层次:数据层对象通讯通道响铃信息进程、线程接收线程回调类初始化启动接收设置对方的ipc发送我们这里使用 event 作为门铃和内存映射实

2022-01-07 17:14:57 561

原创 测试windows ini API 确定ini文件的文法

标题INI 的文法分析ini 文件格式因为比较古老,网上也找不到具体的资料,只能找到例子,为了将ini解析到哈希表中,哈希表是 map<string,map<string,string>>(C++语言),研究了一下它的语法。ini 包含的字符[ ] = ; ‘’ “”[ ] 是在section中使用, = 是在 赋值 中使用,";" 是在注解中使用,‘’ 在值中使用,"" 也是在值中使用.ini结构[section]app1 = value1app2 = v

2021-12-16 16:39:10 1370

原创 scanf扫描字符串总结

scanf如何扫描字符串熟悉的scanf遇到什么字符结束?如果我想要包含空格 tab 怎么办?有宽度的字符串如何截取测试用例参考微软的msdn.熟悉的scanfscanf 是我们学C语言时候最先接触到的,是用来接收输入的.出现的测试题很多都是从一个文件读取,我们就会用到 fscanf 如果用不好,就很麻烦遇到什么字符结束?默认是遇到 空格 tab键 换行,就结束一个串的扫描如果我想要包含空格 tab 怎么办?使用类似正则表达式的限定字符集合 用方括号括起来在% 和 s 之间 。例如: %[a-

2020-12-10 09:29:15 1520

原创 使用nim编写个文件md5程序

练习一下nim 语言,快忘记了。一个同事需要md5计算,网上的需要上传,太大。自己写一个吧。nim 毕竟是个新的语言,库还不多。主要就是从C语言搬东西,不过码代码是很快。有自己的gc编译: nim c filemd5.nimimport md5import os#这个可以去掉,默认将pure 和 system 导入import system/ioproc main = var c:MD5Context file:File md5In.

2020-08-28 16:42:35 244

原创 目录的枚举非递归实现

目录的枚举经常用到,但是大家大多数用递归就能解决问题,但是在某些环境,内存受到限制情况下,递归就回占用大量内存,导致程序崩溃,那么这个时候怎么办?使用非递归!把递归转为非递归目录的递归访问转为非递归访问.以windows 为例:枚举目录需要一个路径继续访问需要上次访问目录的句柄遇到目录,将新目录追加上;保存原来的句柄退回上一级,根据\,将目录退一层;将原来句柄取回来思路就是这样,代码呈上:// enum_dir.cpp : 定义控制台应用程序的入口点。//#

2020-06-22 22:44:26 231

原创 实现ubuntu nautilus文件管理器插件

在mint linux 下下载nautilus 文件管理器使用新立得软件包管理器下载libnautilus-extension-dev 或 apt 下载仿照 github 上的 gonome 下的 nautilus 的 nautilus-sendto-extension 来写主要实现四个功能右键菜单文件属性页文件信息,比如文件的图标改变(根据文件的属性)需要链接 lib...

2020-01-08 15:24:07 948 1

原创 编译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 633

原创 有穷自动机实现拆分字符串为vector

拆分字符串为vector字符串分割,在网上看到几种方法https://www.jb51.net/article/55954.htm1 使用strtok分割//借助strtok实现split#include <string.h>#include <stdio.h> int main(){char s[] = "Golden Global View,disk *...

2019-09-19 11:48:53 190

原创 爬小说

问题:看小说有很多广告,使用迅雷下载,如果文件名称没有规律的话,下载效率很低,因为猜不到文件名规律。于是就想每一章都有下一章,因此可以根据"下一章" 找到 href 然后下载下一章,如果"下一章"已经下载则说明循环了,要停止。下载完以后,需要生成新的小说文件,可以根据小说的开始位置的特点和结束位置特点进行获取文件内容,并且生成目录。这样一本小说就加工出来了。下面是爬小说的部分,使用了 curl...

2019-09-09 17:04:38 525

原创 windows 实现一个简单的自绘边框,具有最大化,最小化,icon,标题

实现一个简单的自绘边框,具有最大化,最小化,icon,标题.当用户嫌windows的框架颜色不好看,要修改窗口的框架,就自己在win32上实现它,因为内容是使用cef框架实现,使用duilib 等界面库和cef的demo代码兼容性有些问题.设计1 popup 窗口,overlapped 窗口有标题,菜单,一些限制2 定义客户区和非客户区目的是在不同的区域返回不同的标志 。主要在 WM_...

2019-08-28 17:30:17 872

原创 实现日志类

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 514

原创 告别printf 拥抱 std::cout

我们使用printf 的时候或者自己构造的printf,有的时候会有这样的烦恼,输出很容易出错,如果 int 类型对应 %s 那么必然要崩溃。为了解决问题结果打log崩溃,是令人很恼火的事。c++ 的输出或者日志输出std::cout << “hello” << endl;c++ 98 实现了如下函数:arithmetic types (1)ostream&amp...

2019-08-10 09:08:01 308

原创 制造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 193

原创 在 typescript 使用命名空间

ex1.tsnamespace mylib{ exports function fibo(x:int):int { if(x==1||x==2) { return 1; } return fibo(x-1)+fibo(x-2); }}ex2.tsimport fibo = m...

2019-05-27 09:50:50 1130

原创 typescript的调试

调试typescript为什么要用 typescript安装typescript设置环境语言为汉语调试设置工作区设置修改调试信息设置build环境上代码输出代码调试界面为何要搞javascript 之类的为什么要用 typescript因为学习曲线。 本人从 C->C++ ,然后学了点儿python , 汇编 ,java ,lua ,对 javascript 的混乱语法实在不感兴趣。...

2019-05-26 19:32:18 3790

原创 项目管理的进度控制

项目管理的进度控制一个项目的核心因素由 时间、成本、范围、质量决定,其中质量是核心产出物 = 范围x成本x时间/质量如果一个项目定下了期限,也就是定下了计划,这个是项目成败的基础也是合同的基础,不能违背。所以要使计划能成功,能完成合同那么。那么在不利的情况下如何调整使等式成立摘抄一段书上的文字:通常可用以下的一些方法缩短活动的工期:(1)投入更多的资源以加快活动过程(2)指派经验更...

2019-05-03 23:59:05 817

原创 linux usb设备如何和u盘对应

已知 usb 的 pid vid,如何对加载的u盘进行管理思路,找到 U盘的厂商信息中的pid和 vid 对应关系,然后控制 U盘的加载但是 U盘信息中没有pid 和 vidroot@li-PC:/sys/kernel/debug/usb# df文件系统 1K-块 已用 可用 已用% 挂载点udev 945652 0...

2019-04-12 17:43:33 1316

原创 嵌入式IAP升级程序的处理

为什么需要IAP固件在用户那里通过串口或USB升级不方便通过ISP让用户体验不好可以省去邮寄固件升级的麻烦固件程序的场景初次量产的时候需要升级的时候在这两种场景需要 hex 文件是不同的,出厂的时候需要把 IAP 程序和真正的业务固件程序一起生成一个HEX ,然后发给工厂量产.升级的时候,因为业务固件程序的问题,导致板子需要重新烧写,需要业务固件程序的HEX文件第一个场景要...

2019-03-22 18:27:19 463

原创 VC 中 有符号扩展和无符号扩展问题

VC 中 有符号扩展和无符号扩展问题先看一个例子void test1(){ short int x = 0xe101; short int y = 7; unsigned int z = x+(7&amp;lt;&amp;lt;16); printf(&quot;%x&quot;,z);}结果是什么呢?先告诉大家答案是 0x6e101但是我们算应该是 0x7e101的,为什么是这个数呢.在我们编译的过程...

2019-01-23 09:41:46 599

原创 节省栈空间的枚举目录

windows 枚举目录的时候如何节省空间不会导致栈溢出。下面就是尽量节省空间的代码.#include &lt;windows.h&gt;#define println(format,...) printf(format "\n",__VA_ARGS__)static WIN32_FIND_DATA a;WIN32_FIND_DATA * get_wfd(){ return &amp...

2018-11-04 11:10:36 172

原创 cmake x86 x64 trace信息

问题:当我们编写CMakeLists.txt 的时候,需要知道操作系统是什么类型,是编译的x86还是x64,是Debug还是Release,还有系统中到底还定义了哪些变量,我们可以使用的?目的:这篇文章的目的就是告诉大家当需要查找系统的信息的时候,怎么查找. windows 系统输出这个:命令 : cmake –trace .. 2&gt;out.txt //输出到 out.txt...

2018-08-13 17:57:53 905

原创 cmake 输出物

cmake 输出物:RUNTIME 输出物:一个子系统的运行时输出物目标可以是下面的东西: 可执行的文件(.exe)由add_executable()命令创建 在 DLL 平台:它是共享库的可执行文件(.dll),由add_library()命令生成后跟SHARED 选项来创建.RUNTIME_OUTPUT_DIRECTORY和RUNTIME_OUTPUT_NAME ...

2018-08-13 16:05:10 1196

原创 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 681

原创 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 857

原创 cmake 结合 codeblocks

cmake 编译为codeblocks 可以接受的工程为每个要生成cbp的加入 project(“项目名”)目录结构CMakeLists.txt 文件src 目录build 目录cd buildcmake -G “CodeBlocks - Unix Makefiles” ..将这些 cbp 找出来,保存为 比如 mywork.workspace然后下一次我们打开mywork....

2018-03-21 16:24:13 2334

原创 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 4680

原创 使用YASM编程 -07 模拟导入表

模拟导入表导入表的调用方式call xxx ; xxx 是导入函数的名称xxx: jmp DWORD [fn] ; 是远程间接跳转fn : DD 0x12345678 ; 跳到全局地址继续执行这个0X12345678 是在运行的时候输入,然后就可以从这里继续执行我们把OutputDebug

2017-09-18 18:18:58 417

原创 使用YASM编程 - 06

我们写汇编程序的时候,往往无法基于汇编代码的思考,只能使用类C语言的方式来进行编程。于是就要从C语言->最细伪代码->用寄存器替代为机器理解代码。 现在以起泡法举例。bubble(){ int a[]={5,10,4,29,33,47,18}; int n = sizeof(a)/sizeof(a[0]) for(int i=1;i<n;i++) {

2017-09-12 18:22:55 614

原创 使用YASM编程 - 05

我们一般实现C语言的 汉诺塔的时候,代码类似下面;;void hanno(a,b,c,n);{; if(n==1); {; printf("%c %c\n",a,c);; return ;; }; hanno(a,c,b,n-1); hanno(a,b,c,1); hann

2017-09-10 13:32:32 388

原创 使用YASM编程 - 04

在linux下使用yasm 先介绍 64位的汇编开发;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;test_linux.asm;在Linux下使用yasm;安装: yasm sudo apt install yasm;编译: yasm -f elf64 -o test_linux.o test_linux.c;链接 ld -e start -dynam

2017-09-04 17:01:32 458

原创 使用YASM编程 - 03

使用宏实现类似masm invoke 第一种方法: 使用重载的多行宏,然后根据参数不同实现不同;当参数为1的时候直接调用函数;call _printf;invoke _printf%macro invoke 1 call %1%endmacro;当有参数的时候,2个参数或更多参数%macro invoke 2-* ;定义一个单行宏为函数名称

2017-09-03 17:45:17 399

原创 使用YASM编程 - 02

Yasm 支持的GAS(Gnu asm)格式 实现: 1 基本框架 2 调用外部API 3 导出_start 4 mov xor push 等 5 使用 label 数字 寄存器 6 定义数字和定义字符串常量 7 编译 8 链接/********************************************************* * Gnu asm 注释和字符串风格

2017-09-02 13:36:42 800

原创 使用YASM编程 - 01

YASM 继承了NASM ,扩展了支持的语法和平台 支持INTEL 格式语法和 GNU AS 语法 下面是一个例子,实现了简单的invoke 调用和编程的一个基本的框架 它能够: 0 win32 程序,控制台打印 1 调用外部程序 2 被外部调用(入口函数) 3 数据段 4 代码段 5 函数定义 6 函数从栈传入参数,从eax返回值 7 编译 8 链接;;;;;;;;;;;;

2017-09-01 18:12:47 3791

原创 NAT连接的虚拟机提供web服务,如何让HOST同一局域网机器访问

NAT提供的虚拟机一般只能和本机通讯,如果其他的和HOST 主机同一网段的主机需要访问虚拟机,怎么办呢?NAT和主机的网络原理: 比如主机在10.10.1.* 这个网段 虚拟机在 192.168.1.* 这个网段 host主机VMNet8 网卡为 192.168.1.* host主机的本地网络 : 10.10.1.* 从host 同一网段的主机都看不到192.168.1.*,如何让其

2017-08-28 16:53:21 1340

原创 IAT挂钩实现和检测

IAT - Import Address Table ,导入地址列表。这里保存着各个导入的函数加载后的地址,它是动态的,随着Dll的加载的位置不同而不同。PE - Portable Execute 可执行的程序结构。在PE结构中有个数据目录(Data Directory) 内部保存导入表的数据。格式大概如下: dll-数据 1 函数数据1 函数数据2 函数数据3 … dll-数

2017-08-28 16:04:02 773

翻译 WOW64下的性能和内存消耗

WOW64下的性能和内存消耗由以下因素决定:处理器硬件。在芯片上执行指令仿真。在x64处理器上,指令由微架构本机执行。因此,x64下WOW64下的执行速度与32位Windows下的速度相似。在Intel Itanium处理器上,更多的软件涉及到仿真,因此性能受损。API thunk开销 与NT内核调用本身相比,这个开销很小。NT内核函数打算不频繁地被调用。虚拟内存大小。在Intel Ita

2017-08-10 12:02:10 707

原创 visual assist 一直使用试用版的方法

因为使用visual assist 的试用版,因此都面临过期的问题

2017-03-15 11:10:51 4851

原创 一道面试题,把excel的列的名称转换为数字

这是一道某公司的上机面试题:microsoft excel 中栏目是用 A,B,C...Z;AA,AB,...ZZ ... ZZZZ ....这样表示序列的它对应是这样0,1,2,...25;26,27...701 ...475253

2016-11-15 21:11:18 2671 2

中天微CK803S用户手册.7z

中天微芯片的指令集,偶然获得,觉得大家应该挺需要。共享一下.中天微芯片的指令集,偶然获得,觉得大家应该挺需要。共享一下.

2020-07-27

android-ndk-r15c-linux-x86_64-005

android-ndk-r15c-linux-x86_64-005 ,linux 下执行的ndk

2018-06-14

android-ndk-r15c-linux-x86_64-004

android-ndk-r15c-linux-x86_64 004 ,linux 下的 ndk 开发包,r15c

2018-06-14

android-ndk-r15c-linux-x86_64_003

android-ndk-r15c-linux-x86_64_003 可在linux下编译。

2018-06-06

android-ndk-r15c-linux-x86_64_002

android-ndk-r15c-linux-x86_64_002 可在linux下编译。

2018-06-06

android-ndk-r15c-linux-x86_64-001

android-ndk-r15c-linux-x86_64.zip 分包压缩的,合并后为一个压缩包,再解压即可.

2018-06-06

UNIX环境高级编程英文第三版源码

UNIX环境高级编程英文第三版源码

2017-06-03

UNIX环境高级编程英文第三版

unix 高级编程 英文第三版

2017-06-03

组合语言之艺术

组合语言之艺术

2017-05-05

编译原理及实践

编译原理与实践,以 tiny 语言为例,从词法分析,语法分析开始,循循善诱,很好懂的一本编译原理书.

2017-04-11

深入java虚拟机

java,虚拟机

2017-04-07

pchunter x64

pchunter x64,查看进程模块,句柄,资源等,查看内核的各种钩子; 启动项等

2017-03-20

pchunter win32

读取进程的模块,挂钩 内核的挂钩,模块,以及内核的各种钩子。

2017-03-20

微软的masm64

和 masm32 对应的masm64,在64位操作系统下的汇编语言开发。

2017-03-20

windows内核API(windows7)

windows内核API(windows7)

2016-07-26

nim IDE aporia

nim 语言的IDE,功能还不太完善。自己从github上下载代码编译的。绿色版

2015-10-13

p2pMedia开源客户端服务器

由中国程序员自主开发的开源的流媒体P2P 客户端服务器。

2011-03-14

kmdtutcn.chm

KmdTut是一份以Win32汇编语言来开发Kernel mode驱动程序的教程

2009-12-24

X264 0.67 源代码

最新x264 源码,需要YASM 编译器。然后和ffmpeg 中解码配合构成完整的H264 编解码器。

2009-05-13

空空如也

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

TA关注的人

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