- 博客(24)
- 收藏
- 关注

原创 “error C2712: 无法在要求对象展开的函数中使用__try”解决方案
前段时间写了一篇关于C++异常捕获及异常处理的文章:c++异常捕获及异常处理try-throw-catch严格的来说,那不算是一篇完整的文章,更多的是提出我的疑惑。顺便总结了一下网友关于C++异常捕获及异常处理给出的精炼的示例。至今,上文提到的疑惑本菜鸟都没有完全解开。于是,我就选择了用 __try __except 来捕获及处理异常。经过测试,我想捕获的异常用 __try __except 都捕...
2018-06-12 16:33:31
8151
1
转载 Git revert 撤销合并
Git 的 revert 命令可以用来撤销提交(commit),对于常规的提交来说,revert 命令十分直观易用,相当于做一次被 revert 的提交的「反操作」并形成一个新的 commit,但是当你需要撤销一个合并(merge)的时候,事情就变得稍微复杂了一些。Merge Commit在描述 merge commit 之前,先来简短地描述一下常规的 commit。每当你做了一批操作(增加、修改、或删除)之后,你执行 git commit 便会得到一个常规的 Commit。执行 git show
2021-11-17 11:35:43
1359
转载 彻底搞清楚javascript中的require、import和export
为什么有模块概念理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,在es6以前,它是不支持”类”(class),所以也就没有”模块”(module)了。require时代Javascript社区做了很多努力,在现有的运行环境中,实现”模块”的效果。原始写法模块就是实现特定功能的一组方法。只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。 1 2 3 4
2021-08-06 16:57:28
1901
原创 关于strcpy_s第二个参数(目标缓冲区大小)的测试以及更加安全的替代方案
先来看一下msdn上的函数原型和对其参数的解释errno_t strcpy_s( char *strDestination, size_t numberOfElements, const char *strSource ); ParametersstrDestinationLocation of the destination string buffer...
2018-06-13 14:52:50
3140
转载 转储了dump后,如何用Windbg进行分析呢?
上一篇向大家介绍了如何在程序“死”的时候转储Dump文件以及如何进行一些其他的处理(请戳蓝色字体:《程序又“死”了,但是还好我转储了dump!》)。那么,今天笔者将继续向大家详细介绍如何使用Windbg对dump文件进行调试分析。-- 准备工作 --Windbg是一款功能十分强大的调试工具,它设计了极其丰富的功能来支持各种调试任务,包括用户态调试、内核态调试、调试转储文件、远程调试等等。 ● ST...
2018-06-04 15:59:17
6931
原创 WinDbg命令行选项详解
本文内容摘自:http://www.dbgtech.net/windbghelp/如有侵权请联系。WinDbg命令行选项WinDbg命令行使用如下语法:windbg [ -server ServerTransport | -remote ClientTransport ] [-lsrcpath ] [ -premote SmartClientTransport ] [-?] [-ee {mas...
2018-06-04 10:39:14
1815
原创 c++异常捕获及异常处理try-throw-catch
一直以来,我对c++的异常捕获功能非常困惑。因为网上几乎99%的关于c++异常捕获的文章给我的感觉就是:c++异常捕获很简单的啦~就是下面这样嘛,如下情景1:try{ int a = 5, b = 0, c = 0; c = a / b; // 这里异常}catch(...) // 捕获所有异常{ printf_s("Do not do this...
2018-05-11 19:07:51
13884
3
转载 为什么构造函数不能声明为虚函数,析构函数可以
构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。编译器无法知道对象 的实际类型,是该类本身,还是该类的一个派生类,或是更深层次的派...
2018-05-03 19:35:04
238
转载 C和C++结构体的区别
C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。所以C的结构体是没有构造函数、析构函数、和this指针的。C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。C语言的结构体是不可以继承的,C++的结构体是可以从其他的结构体或者类继承过来的。在C中定义一个结构体类型要用typedef,如下:typede...
2018-04-28 11:39:51
293
转载 MD(d)、MT(d)编译选项
一、MD(d)、MT(d)编译选项的区别1、编译选项的位置以VS2005为例,这样子打开:1) 打开项目的Property Pages对话框2) 点击左侧C/C++节3) 点击Code Generation节4) 右侧第六行Runtime Library项目2、各个设置选项代表的含义编译选项包含静态链接的lib说明/MD_MT、_DL...
2018-04-24 11:46:26
1878
转载 VMProtectSDK使用教程
一. 接口说明//开始保护处标记(对应于功能设置:反调试、内存保护等等)VMProtectBegin(const char *);//开始虚拟化代码处标记(包括保护设置)VMProtectBeginVirtualization(const char *);//开始变异代码处标记(包括保护设置)VMProtectBeginMutation(const char *);//开始虚拟+代码变异标记...
2018-04-23 20:30:43
9028
转载 C/C++调用约定__stdcall、__cdecl和__fastcall的区别
__stdcall、__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。如下图所示,可以在IDE环境中设定所有函数默认的调用协议,还可以在函数定义时单独设定本函数的调用协议。调用协议常用场合__stdcall:Windows API默认的函数调用协议。__cdecl:C/C++默认的函数调用协议。__fastc...
2018-04-23 16:23:35
400
转载 DllMain详解
本文转载自:https://blog.youkuaiyun.com/benkaoya/article/details/25047811 DLL的进入/退出函数1.1 DllMain简介跟exe有个main或者WinMain入口函数一样,DLL也有一个入口函数,就是DllMain。以“DllMain”为关键字,来看看MSDN帮助文档怎么介绍这个函数的。The DllMain function is an o...
2018-04-20 14:49:04
1052
转载 DLL的远程注入技术及注入dll函数调用
本文转载自:https://blog.youkuaiyun.com/xuplus/article/details/36051337一、DLL注入DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进...
2018-04-19 15:34:20
9576
原创 C++ string字符串初始化
先来看看C的字符串是如何进行初始化的:char *cpStr="hello world";char arr1[]="hello world";char arr2[]={'h','e','l','l','o'};这三种定义c字符串的方式,其中前两种虽然形式不一样但含义是一摸一样的,没有差别,在计算字符长度的时候都会比实际显示的字符长度多1,因为这两种初始化会在字符串末尾默认添加了一个‘/0’。而...
2018-04-18 11:09:33
15295
转载 使用fstream进行文件读写时如何选择文件打开方式
一、fstream文件打开方式。 ios::in input 以输入方式打开文件。 ios::out output 以输出方式打开文件。 ios::app append 以追加方式打开文件。 ios::ate at end ...
2018-04-17 17:12:43
2707
转载 为什么要用大写的那些类型修饰符?如INT与int、BOOL与bool
本文转载自:https://blog.youkuaiyun.com/yjn001/article/details/3761709一般的任何一个正规的项目开发第一件事情要做的就是在开发环境上架一层自己的环境,主要包括类型定义、内存管理和文件管理。主要的目的是为了代码的可移植性和可维护性。 例如在标准C的环境下,16位处理器的int是16位,...
2018-04-16 20:20:36
1516
原创 BAT批处理基础知识
批处理命令获取当前盘符和当前目录当前盘符:%~d0当前路径:%cd%当前执行命令行:%0当前bat文件路径:%~dp0当前bat文件短路径:%~sdp0
2018-02-26 17:33:34
378
原创 (划重点)汇编语言关键词和重要指令
主要记录一些不容易记但经常用到的汇编语言关键词和重要指令。循环loop 执行循环 loope和loopne就是比loop多了一个测试ZF标志位的东西 loope是只有在CX不等于0和ZF=1的情况下才执行循环 loopne是是只有在CX不等于0和ZF=0的情况下才执行循环寄存器ESP和EBPESPESP是扩展堆栈指针寄存器(Extended stack
2018-01-10 21:06:38
3239
原创 汇编语言常见术语解释
寄存器CS(Code Segment):代码段寄存器; DS(Data Segment):数据段寄存器; SS(Stack Segment):堆栈段寄存器; ES(Extra Segment):附加段寄存器。 当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS, ESesi,edi,分别是16位寄存器DI和SI的32位扩展。它...
2018-01-05 17:43:36
3526
原创 Windows常用命令行
查看文件的MD5certutil -hashfile E:\test.exe MD5其他相关命令: certutil -hashfile E:\test.exe SHA1 certutil -hashfile E:\test.exe SHA256查看端口状态netstat [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s]
2018-01-05 14:07:50
410
原创 关于windows系统内存的问题
问题1、如果物理内存只有2GB或更小那么CPU的寻址空间还能达到4GB吗?网友回答: 首先要说明内存寻址空间的大小和我们说的内存条的大小完全是两个概念。不能混为一谈。 4G地址空间只是个虚拟的,方便进程地址管理的。每个进程的4G地址空间只对应着物理内存的某一小部分。内核每建立一个进程都会为它分配相应的物理内存,而这部分内存只是整个物理内存的一小部分。一旦进程一次需求操作的数据大于系统本身给你提供
2018-01-04 17:04:15
393
原创 如何判断文本的编码格式以及编码格式转换
字符集(Charcater Set或Charset)是一个系统支持的所有抽象字符的集合,也就是一系列字符的集合。字符编码(Character Encoding)是一套法则,使用该法则能够对自然语言的字符的一个字符集(如字母表或音节表),与计算机能识别的二进制数字进行配对。为了使国际间信息交流更加方便,国际组织制定了 UNICODE 字符集,为各种语言中的每一个字符设定了统一并且唯一的数字编号。
2017-12-28 16:43:00
12823
转载 如何用MFC做漂亮的界面
本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础:1. 大致了解MFC框架的基本运作原理;2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制;3. 熟悉OOP理论和技术;本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助。
2017-12-25 13:42:57
63539
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人