- 博客(15)
- 资源 (14)
- 问答 (1)
- 收藏
- 关注
原创 【 C/C++】变量在内存里的存储区域
C/C++语言在内存中一共分为如下几个区域,分别是:内存栈区: 编译期间就能确定存储大小,运行时自动分配释放。存放函数的参数值、返回地址、局部变量的值等。在函数作用域内创建,在离开作用域后自动销毁。.esp 始终指向栈顶, 栈中的数据越多, esp的值越小。其操作方式类似于数据结构中的栈。存储空间是连续的,两个紧密挨着定义的局部变量,他们的存储空间也是紧挨着的。栈的大小是有限的,通常Visual C++编译器的默认栈的大小为1MB,所以不要定义int a[1000000]这样的超大数组。内存堆
2020-10-08 11:57:14 1532
原创 【VC++】虚函数 内存结构 - 第三篇(篇外篇)(类有无实体对象,对虚函数表的影响研究)
本文只是研究,并不一定正确,更不会很系统全面。若有错误,还请斧正!先贴上 完整代码:#include <IOSTREAM> //原创:https://blog.csdn.net/maoyeahcom/#include <Windows.h> //转载请指明出处,请勿用于商业用途using namespace std; //仅用于研究,不权威,可能存在错误class Base{public: virtual void F(){ cout<<"Base::F
2020-09-29 18:01:51 221
原创 【VC++】虚函数 内存结构 - 第三篇(单继承,有虚函数覆盖)
【VC++】虚函数 内存结构 - 第三篇(单继承,有虚函数覆盖)#include <IOSTREAM>using namespace std;class Base{public: int nBase1; int nBase2; Base(int n1,int n2):nBase1(n1),nBase2(n2) { cout<<"Base::Base("<<n1<<","<<n2<<")"<<end
2020-09-25 21:17:25 164
原创 【VC++】虚函数 内存结构 - 第二篇(单继承,无虚函数覆盖)
【VC++】虚函数 内存结构 - 第二篇(单继承,无虚函数覆盖)#include <IOSTREAM>using namespace std;class Base{public: int nBase1; int nBase2; Base(int n1,int n2):nBase1(n1),nBase2(n2) { cout<<"Base::Base("<<n1<<","<<n2<<")"<<end
2020-09-24 15:11:21 165
原创 【VC++】虚函数 内存结构 - 第一篇(单类)
前言 - 为何写此系列文章?网上讨论虚函数内存结构的文章很少,好不容易有几位大神写了几篇很精彩的文章,结果里面还有错误:陈皓大神的《C++ 虚函数表解析》:https://blog.csdn.net/haoel/article/details/1948051《C++ 对象的内存布局(上)》:https://blog.csdn.net/haoel/article/details/3081328《C++ 对象的内存布局(下)》:https://blog.csdn.net/haoel/article
2020-09-23 17:27:04 259
原创 Release版崩溃,用VS调试dump文件,定位代码出错行【VC++/Visual Studio】
人为制造一个崩溃,先直接看效果图:下面是实现过程,本文是VS2017为例:dump.h:#pragma once// dump.h#include <windows.h>extern LONG WINAPI ExceptionFilter(LPEXCEPTION_POINTERS lpExceptionInfo);dump.cpp:// dump.cpp#include <stdio.h>#include <windows.h>#include
2020-09-14 18:00:00 4292
原创 去掉/添加 代码行号(清除/增加 代码行号)(网上拷的代码有行号,去除行号)(自己写的代码前面加上行号)
有时,在网上copy的代码时,前面会有行号。代码少时,一行行 手工删除行号,还行;但代码多时,手工删除就笨拙了!有种方法,就是用正则表达式替换,但还是有点“打脑壳”,那就用我下面写的这个工具吧,简单快捷:后面工具又更新了,加入逆向功能“添加行号”:=======================================================================人和动物,最大的区别是:制造和使用工具。我负责“制造”,你负责“使用”,这才符合人类的行为 o&l
2020-08-28 17:53:57 1186
原创 如何确定两个 时间不同 的exe(或DLL),其对应的源代码 有没有改动?同一源码,编译两次,其MD5值不一样!【vc++/dumpbin】
一般情况,我们确定 两个文件 内容是否一样,一般是看其MD5值是否一样。`但是 同一套VC++代码,不作任何改动的情况下,每次生成的exe(或DLL),其MD5值都是不同的。这种情况下,怎么确定其对应的源码是一样的(没有作改动)?一种解决方案,用工具:dumpbin如果你机子上装了 VS,一般都会有 dumpbin如果装了多个VS版本,可以选一个版本最高的VS,其目录下的dumpbin(如64位目录下的),加入环境变量,方便以后经常使用。命令格式:dumpbin /disasm 我的
2020-08-21 12:00:18 1489
原创 判断PE文件(可执行程序exe、动态链接库dll)是32位,还是64位?
方法有很多,本文只介绍三种方法:================================================================================方法一: 最简单粗暴的方法:直接用记事本或者notepad++(文本编辑软件都可)打开exe文件(dll文件),会有很多乱码,接下来只需要在第二段中找到PE两个字母,在其后的不远出会出现d? 或者L。若是L,则证明是32位;若是d,则证明该程序是64位。32位(x86):64位(x64):====
2020-08-20 20:56:37 2655 1
原创 GetTextExtent、GetTextExtentPoint32 精确无误差的使用注意【vc++ / MFC】
网上有大量的有关“获取字符串的显示宽度”的文章,基本都是用 GetTextExtent 或 GetTextExtentPoint32,但大多数都没说字体的影响,直接结果是误差很大,包括MSDN上的示例:MSDN这段示例原代码:// Pointer to the myListBox.extern CListBox* pmyListBox;// Find the longest string in the list box.CString str;CSize sz;int dx=0
2020-08-20 15:24:00 4316 3
原创 C++ 调试值、打印值,不一样!!!!
VC6、VS2013上都试过。贴上代码,大家可以研究一下:#include <IOSTREAM>using namespace std;int main(int argc, char* argv[]){ const int a = 3; cout<<"原a: "<<a<<endl; const_cast<int&>(a) = 4; cout<<"后a: "<<a<<endl<&.
2020-07-06 20:03:20 868 1
原创 C++ 一般(普通)函数指针、类成员函数指针,用法区别,以及 强制转换
直接上代码:#include <iostream>class CClass{public: //类 函数指针 void (*pClass_Func_Pointer)(int a); //类 静态函数 static void class_Static_Func(int a) { cout<<a<<"访问:类 静态成员函数"<<endl; } //类 函数 void class_Fu
2020-07-03 15:56:11 1146
示例代码:Release版崩溃,用VS调试dump文件,定位代码出错行【VS2017】
2020-09-14
VC支持c99标准的:msinttypes-r26.zip
2020-09-11
【小工具】去掉/添加 代码行号(清除/增加 代码行号)
2020-08-28
批量判断pe文件(exe、DLL) 是32位,还是64位
2020-08-20
C++ 一般(普通)函数指针、类成员函数指针,用法区别,以及强制转换
2020-07-03
VC++/MFC 的 CImageList 绘制背景透明的位图
2020-01-03
VC++ 完美 动态创建控件、删除控件,并且不崩溃,无内存泄漏、GDI泄漏
2019-11-08
WinDbg离线下载安装包 + 使用示例:Release崩溃crash找到出错的函数、行
2019-10-22
RSA、AES混合加密解密,Java工程、安卓Demo,1024和2048长度密钥都可用,兼容Android所有版本
2019-06-05
非IE内核 浏览器二开源码 windows/win32/VC++/vs/Webkit/Chrome/Chromium/CEF3
2019-05-30
字节映射,加密解密工具。适用于简单的网络通讯加密解密
2019-04-19
socket--文件传输--源代码--C++版(C/S双端)(服务器端+客户端)(Server+Client)
2019-04-16
IIS6最完整版.rar:genset.htm,FP5AUTL.DLL,FP5AWEL.DLL,fpmmc.dll...
2014-05-24
vs2003安装报错h2inc.err
2014-04-25
VC++、DLL、虚函数、调用约定
2015-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人