Delphi的Win32的API调用简单介绍
1. 介绍Win32 API和Win32系统。还要讨论Win32系统的功能以及它与16位系统在功能上的几个主要区别。只是让对Win32系统有一个基本的了解。当已经基本了解Win32操作后,就可以在任何需要的时候使用Win32系统提供的高级功能了。
2. Win32环境中有两种基本的对象类型:内核对象和GDI/用户对象。
内核对象是Win32系统原有的,包括事件、文件映射、文件、邮件槽、互斥、管道、进程、信号灯和线程。Win32 API包含有针对不同内核对象的函数。
3. 对象与它的句柄之间存在直接的关系。一个对象的句柄实际上是一个指针,这个指针指向构成对象的数据。依赖于不同的对象类型,对象数据存储于GDI或用户数据段中。另外,对于分配于全局堆的对象,他们的句柄也是指针,指向全局内存段。
Win32 GDI子系统对GDI句柄的管理包含两个方面,一个是对GDI对象的校验,另一个是句柄的重复使用
用户对象和GDI对象有些类似,它是由Win32用户子系统管理的。然而用户对象的句柄不想GDI对象那样存储于进程的地址空间,而是有一个专门的用户句柄表。因此,像窗口、窗口类、原子等对象可以在不同的进程之间共享。
4. 多任务是指操作系统可以同时运行多个应用程序。操作系统把CPU的时间分成片分配给每个应用程序。在这种情况下,多任务其实并不是真正的多任务,只能说是任务切换。或者说,操作系统并没有真正同时运行多个应用程序。相反,它先运行一个应用程序一定的时间,再切换到另一个应用程序运行一定的时间。它对每个应用程序都这样处理。因为时间被划分得很短,对于用户来说,就好像多个应用程序在同时运行一样。
5. 多线程是指一个应用程序内部的多任务。这意味着应用程序可以同进行不同类型的处理。一个进程可以有多个线程,每个线程都有各自不同的执行代码。一个线程可能要依赖于另一个线程,这样就必须要同步。例如,不能假设一个线程在另一个线程要使用它的结果时已完成了处理。线程同步技术用于十多个线程能够同步执行。
6. 你的计算机不太可能安装4 G B的物理内存。那么,Wi n 3 2系统是怎样获得比实际安装的物理内存大得多的地址空间的?3 2位的地址并不真正代表物理内存的一个位置,其实Wi n 3 2使用的是虚拟地址。
通过虚拟地址,每一个进程可以获得4 G B的虚拟地址空间。上端的2 M B空间属于Wi n d o w s,下端的2 M B空间是放置应用程序及可以分配内存的地方。这种模式的优势在于一个进程中的线程不能访问其他进程的内存。同样的地址$ 5 4 5 4 5 4 5 4在不同的进程中指向不同的位置。
一个进程并不是真的有4 G B的内存而只是具有访问4 G B内存的能力,注意到这一点是很重要的。一个进程真正能够访问的内存大小取决于计算机安装了多少物理内存以及磁盘上有多少的空间可被页交换文件使用。对于一个进程而言,物理内存和页交换文件是按页来划分使用的。页的大小取决于Win32安装在什么类型的系统上。在Intel的平台上,没页的长度是4KB;在Alpha平台上,每页的长度是8KB。对于PowerPc和MIPS平台而言,每页的长度也是4KB。系统会把页从页交换文件移到物理内存中,需要的时候在移回来。系统会维护进程当中虚拟地址和物理地址之间的关系。
Delphi的Win32的API调用简单介绍的更多相关文章
- 浅议Delphi中的Windows API调用(举的两个例子分别是String和API,都不错,挺具有代表性)
浅议Delphi中的Windows API调用http://tech.163.com/school • 2005-08-15 10:57:41 • 来源: 天极网为了能在Windows下快速开发应用程 ...
- Delphi XE6 通过JavaScript API调用百度地图
参考昨天的内容,有朋友还是问如何调用百度地图,也是,谁让咱都在国内呢,没办法,你懂的. 首先去申请个Key,然后看一下百度JavaScript的第一个例子:http://developer.baidu ...
- Java系统属性与Preferences API的简单介绍
系统属性在和Preferences API都是键值对,前者只能当前应用程序中共享数据,而后者可以在用户的各个应用或用户之间共享数据. 系统属性 Java 的系统属性决定了 Java 程序实际运行的环境 ...
- 信鸽推送 .NET (C#) 服务端 SDK rest api 调用库(v1.2)
信鸽推送 .NET 服务端 SDK rest api 调用库-介绍 该版本是基于信鸽推送v2版本的时候封装的,先拿出来与大家分享,封装还还凑合,不依赖其他http调用件,唯一依赖json序列化dll ...
- webservice和wcf和web.api简单介绍
转自:无废话的wcf等等 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Ser ...
- jira以及jira API简单介绍
最近需要预言:是否可以通过jira API实现用例管理,对jira的应用.API.扩展等进行了一定的了解. Jira介绍: jira是目前比较流行的基于Java架构的管理系统(Atlassian公司支 ...
- C#中可直接调用WIN32的API函数--USER32.DLL
Win32的API函数可以直接在C#中直接调用,在做WinForm时还是很有帮助的.有时候直接调用Win32的API,可以很高效的实现想要的效果. using System; using System ...
- 阿里云api调用做简单的cmdb
阿里云api调用做简单的cmdb 1 步骤 事实上就是调用阿里api.获取可用区,比方cn-hangzhou啊等等.然后在每一个区调用api 取ecs的状态信息,最好写到一个excel里面去.方便排序 ...
- Win32编程API 基础篇 -- 2.一个简单的窗口 根据英文教程翻译
一个简单的窗口 例子:简单的窗口 有时人们在IRC提问,”我应该怎样制作一个窗口”...嗯,这恐怕不是完全这么简单好回答!其实这并不难一旦你明白你在做什么,但在你得到一个可展示的窗口之前还有一些事情需 ...
随机推荐
- Codeforces Gym 100114 D. Selection
Description 问选择一个序列上的所有数的最少操作次数,跟电脑上选择文件一样,输出操作方案. Sol 贪心. 用Shift一段文件只能使用一次,之后必须一直按Ctrl了. 然后就是看用Shif ...
- NOI2009 诗人小G
Sol 决策单调性+二分 传说中的四边形不等式...其实做了这道题还是不会... 证明简直吃屎//// 贴个传送门这里有部分分做法还有决策单调性的证明 byvoid ISA tell me that ...
- 【MavenWeb】初探:创建一个Maven Web项目
第一步:创建一个Simple的Maven项目 直接点下一步,把name上面的几个部分填写好,直接Finish即可. 就可以看到如下的结构: 注意点1:如果按照网上的其他一些做法来创建,你会发现少了sr ...
- 使用socket方式连接Nginx优化php-fpm性能
Nginx连接fastcgi的方式有2种:TCP和unix domain socket 什么是Unix domain socket?-- 维基百科 Unix domain socket 或者 IPC ...
- 数据库视图 (View)和EntityFramework Code First结合使用
问题来源: 项目需要进行查询操作,会涉及多表间的联合查询,使用Entity Framework会牵涉到效率问题,为增加查询速度,所以使用数据库视图技术,综合来讲是将Model类映射到数据库View. ...
- 隐藏左侧快速导航除DMS导航树之外的其他区域
<style type="text/css"> /*隐藏左侧快速导航除DMS导航树之外的其他区域*/ .ms-quicklaunchouter { display: n ...
- C#之使用NotifyIcon实现任务栏托盘菜单,图标闪烁效果及气泡提示
很多程序是只需要后台运行的,甚至不需要自己的应用界面.NotifyIcon提供了程序在任务栏的显示功能 程序下载链接如下: http://download.csdn.net/detail/u01031 ...
- Effective C++ -----条款11: 在operator=中处理“自我赋值”
确保当对象自我赋值时operator=有良好行为.其中技术包括比较“来源 对象”和“目标对象”的地址.精心周到的语句顺序.以及copy-and-swap. 确定任何函数如果操作一个以上的对象,而其中多 ...
- oracle,mysql对敏感,关键字等处理
oracle用"" 比如,处理字段中间有空格,
- ORACLE、MYSQL的JDBC配置
info.jdbc.driverClassName=oracle.jdbc.driver.OracleDriver info.jdbc.url=jdbc:oracle:thin:@192.168.18 ...