![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理
luckyone906
这个作者很懒,什么都没留下…
展开
-
MFC添加自定义消息及重写消息过程
由于MFC中无法通过类向导来自定义消息,所以需要手动添加,主要过程如下:本文基于vs2008下通过线程实现数据实时更新的对话框运用程序1. 定义消息(Resource.h文件中):由于很多新控件也会用到WM_USER消息,所以定义WM_USER+100或更高,避免冲突#define WM_UPDATEDATA (WM_USER + 100)2015-3-18 更新1. 定义消息( stdafx.h文件中):由于很多新控件也会用到WM_USER消息,所以定义WM_.原创 2020-07-14 22:40:38 · 4011 阅读 · 1 评论 -
vs中寄存器调试窗口可看出程序是多少位运行的及cpu寄存器使用情况
如果不清楚程序是多少位运行的,可在vs中的调试->寄存器调试窗口查看寄存器的寻址位数,如果是32位的exe则寄存器寻址显示32位,64位的exe则显示64位寻址1、根据IntPtr.Size来判断,如果值为4则是32位,如果为8则是64位,所有.NET版本都支持。复制if (IntPtr.Size == 4){ // 32-bit}else if (IntPtr....原创 2019-10-28 10:55:23 · 1016 阅读 · 0 评论 -
Marshal在C#中的应用(void *指针到IntPtr的转化)
C#调用C语言的API时一般把void *指针转换成IntPtr,但这经常远远不够的。在C语言中void *是个万金油,尤其是一些老的c语言程序,所有的参数就一个void*指针,里面包罗万象,然后在程序中来一个switch,甚至多个switch来处理不同的参数。最近笔者就碰到了这个问题,不得不来研究一下怎么把void *指针转换成IntPtr。1.void *指针到IntPtr的简单转化。...转载 2019-03-06 10:11:21 · 5080 阅读 · 0 评论 -
c++内存测试
void MemoryTest()//内存测试 {//指针嵌套 char rr;//栈中分配内存(系统自动分配释放) int ee = (int)&rr;//将rr的内存地址转换成整型数 char* yy = &rr;//定义一个字符型指针yy,将rr内存地址赋予yy int* zz = (int*)&yy;//存放指针的指针变...原创 2019-02-15 14:27:21 · 712 阅读 · 0 评论 -
c++中字符数组内存和指针问题示例解答
char* id = "123456"; char* c= ":SN="; unsigned char buffer[20]; int j = 0; for (int i = 0;i < strlen(c);i++) { buffer[j] = c[i]; j++; } for (int i = 0;...原创 2019-01-28 15:58:40 · 294 阅读 · 0 评论 -
closehandle()函数
引用自《百度百科》,用于解决今天遇到的close handle 后什么时候释放资源问题: 方法名称:CloseHandle位置:Kernel32.dllBOOL CloseHandle(HANDLE hObject);参数hObject :代表一个已打开对象handle。返回值TRUE:执行成功;FALSE:执行失败,可以调用GetLastErro...转载 2019-01-18 18:59:01 · 2225 阅读 · 0 评论 -
电脑怎样执行编程语言的?
链接:https://www.zhihu.com/question/29227521/answer/154819061来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。这个问题真的是很大,让我们自顶向下的解释。在顶层,程序员编写出来的都是源代码。源代码可以使用各种高级语言写成,例如 c/c++ c# java python 等等;也可以使用对应平台的低级语言写成,例如汇...转载 2018-04-02 21:32:05 · 622 阅读 · 1 评论 -
nm命令中符号类型详解
nm命令介绍的很多,但大多不介绍其函数符号标志的含义。最近在调试动态库时常用到,其中用的最多的用法:nm -A * |grep “aaa” | c++filt // -A 为了显示文件, c++filt转换为可读风格,好像有个参数也能实现类似功能其他内容整理如下(原作者未知):nm用于列出目标文件的符号清单,如果没有指定目标文件,则默认为“a.out”。nm的格式如下转载 2018-04-01 20:36:15 · 6382 阅读 · 0 评论 -
编译器构造概述(详细)
一、 编译器简介前面谈到静态链接器构造的基本流程,最后提到所构造的链接器若要能正常工作的前提是需要构造一个能生成符合链接器输入文件格式的编译器,本文构造一个符合这种具体格式要求编译器。但是编译器的直接编译的结果一般是汇编语言文件,这种文件是不能满足上述静态链接器的需求的,因此在它们之间还需要一个汇编语言程序将汇编语言转换为二进制文件作为链接器的输入。恰如图1-1所示,转载 2018-04-01 20:34:05 · 2505 阅读 · 0 评论 -
C/C++编译和链接过程详解 概述 (重定向表,导出符号表,未解决符号表)
详解link 有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后, 或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用某种IDE(Vi转载 2018-04-01 20:28:28 · 536 阅读 · 0 评论 -
变量名和内存地址及符号表
1、变量名是给编译器看的,编译器根据变量是局部还是全局分配内存地址或栈空间,所谓的变量名在内存中不存在,操作时转换成地址数存放在寄存器中了。其实可以理解为是符号表起到了连接作用。2、符号表 (此段摘抄网上一个课件) 符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。如常数表、变量名表、数组名表转载 2018-04-01 20:26:51 · 4558 阅读 · 0 评论