- 博客(8)
- 收藏
- 关注
原创 Windows可执行文件简述(二)
Windows可执行文件简述(二) 如果PSP中的第一个FCB含有一个有效驱动器标识符,则置AL为00h,否则为0FFh。MS-DOS还置AH为00h或0FFh,这依赖于第二个FCB是否含有一个有效驱动器标识符。 建造PSP后,MS-DOS在PSP后立即开始(偏移100h)加载com文件,它置SS、DS和ES为PSP的段地址,接着创建一个堆栈。为了创建这个堆栈,MS-DOS置SP为
2004-03-23 10:00:00 3381
原创 Windows可执行文件简述(三)
Windows可执行文件简述(三)4.LE格式在Windows3.x的时代,从DOS启动Windows,Windows在把机器转到保护模式之前需要在实模式下做一些初始化。实模式的16位代码必须和32位代码一起放在可执行文件中。旧的DOS下的可执行文件和NE格式的可执行文件无法满足这个要求,于是从Win 3.x起到Win 9x,产生了一种新型的可执行文件格式LE,它只适用于工作于系统底层的、
2004-03-23 10:00:00 3626
原创 Windows可执行文件简述(一)
Windows可执行文件简述(一) 操作系统中的文件是一种抽象的机制,提供了一种在磁盘上保存信息而且方便以后读取的方法。在Windows操作系统中,一个用户可以最直接体会到的文件的形式就是以.exe、.dll等为扩展名的可执行文件。伴随着Windows操作系统的不断进步,其可执行文件的格式也发生了巨大变化。这期间主要有4个过程:DOS中出现的最简单的以.com为扩展名的可执行文件和以.ex
2004-03-23 09:58:00 3866 1
原创 在DLL中使用资源(一)
在DLL中使用资源(一) 在CSDN论坛上最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。1.Win32 DLL 在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。
2004-03-08 11:29:00 5723 3
原创 在DLL中使用资源(二)
2、动态链接到MFC的DLL 在讨论关于动态链接到MFC的DLL的模块状态问题之前,先来看一个例子。本例可以通过如下步骤来完成: 1)在VC菜单中File->New新建一个命名为DLLShared的MFC AppWizard的工程,下一步选择Regular DLL using shared MFC DLL。 2)在工程中添加一个对话框资源,其ID为:IDD_ABOU
2004-03-08 11:29:00 6675 3
原创 DLL中调用约定和名称修饰(一)
DLL中调用约定和名称修饰(一)调用约定(Calling Convention)是指在程序设计语言中为了实现函数调用而建立的一种协议。这种协议规定了该语言的函数中的参数传送方式、参数是否可变和由谁来处理堆栈等问题。不同的语言定义了不同的调用约定。 在C++中,为了允许操作符重载和函数重载,C++编译器往往按照某种规则改写每一个入口点的符号名,以便允许同一个名字(具有不同的参数类型或者是
2004-03-05 13:35:00 4628
原创 DLL中调用约定和名称修饰(二)
DLL中调用约定和名称修饰(二)4、thiscallthiscall调用约定是C++中的非静态类成员函数的默认调用约定。thiscall只能被编译器使用,没有相应的关键字,因此不能被程序员指定。采用thiscall约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,只是另外通过ECX寄存器传送一个额外的参数:this指针。 这次的例子中将定义一个类,并在类
2004-03-05 13:35:00 3428
原创 DLL中调用约定和名称修饰(三)
DLL中调用约定和名称修饰(三)2、C++编译时函数(非类成员函数)名称修饰当函数使用__cdecl调用约定时,编译器进行以下工作: 1.以?标识函数名的开始,后跟函数名;2.函数名后面以@@YA标识开始,后跟返回值和参数表;3.当函数的返回值或者参数与C++类无关的时候,返回值和参数表以下列代号表示: B:constD:charE:unsigned
2004-03-05 13:35:00 2712 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人