- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
索引:DXELOAD EMU387 GETOPTS HEAPTRC
IPC MMX PORTS PRINTER
DXELOAD
dxeload单元是Pierre Müller为Dos编写的,它允许加载一个DXE文件(一个有入口(entry point)的对象文件)到内存,并返回一个指向入口
的指针。它只在Dos下存在。
常量:
下面的常量是神奇数字(magic number),在一个DXE文件的头。
DXE_MAGIC =
类型:
下面的记录描述一个DXE文件的头。它用来确定DXE文件的神奇数字和搬迁(relocations)数。
dxe_header = record
magic,
symbol_offset,
element_size,
nrelocs : longint;
end;
函数和过程:
dxe_load
定义:function dxe_load(filename : string) : pointer;
描述:dxe_load将文件filename的内容加载入内存。它执行对象代码中的必要relocations,并返回一个指向入口的指针。
如果在加载或relocation过程中发生错误,会返回空指针。
返回页首
EMU387
EMU387单元是Pierre Müller为Dos编写的,它为Dos下的FPC设立了协处理器仿真(coprocessor emulation)。在其他OS平台上使用本单元不是必要的,因为他们要不根本不在没有协处理器的机器上运行,要不自己提供协处理器仿真。使用本单元的函数不是必要的,把这个单元放在你的程序的uses后来让 Dos下的协处理器仿真可用已足够。该单元的初始化代码将尝试加载协处理器仿真代码和初始化。
npxsetup
定义:procedure npxsetup(prog_name : string);
描述:npxsetup检查是否找到协处理器。如果没有,它就将文件wmemu387.dxe加载入内存,并初始化里面的代码。如果环境变量387设为N,就会加载仿真,计时有一个协处理器存在。
如果环境变量不存在,或设为其他值,这个单元会尝试检测一个协处理器单元的存在。
这个函数查找文件wmemu387.dxe通过以下方式:
1.如果环境变量EMU387已经设立,它被假定为指向wmemu387.dxe文件。
2. 如果环境变量EMU387不存在,该函数会使用prog_name的路径部分,并在那个路径里查找wmemu387.dxe文件。
调用这个函数是不必要的,因为单元的初始化代码中包含调用该函数作为第一个参数。这就是说,你应该将你的程序和wmemu387.dxe放在一起。
错误:如果产生错误,错误信息会被打印到标准错误,然后终止程序,因为任何浮点代码都是注定要失败的。
返回页首
GETOPTS
它是由Micha?l Van Canneyt编写在Linux上使用,现在也适用于所有支持的平台,这个单元提供了一种以结构化的方式处理命令行选项的机制,它让你为你的程序定义有效选项。这个单元会为你分析任何命令行选项,并通知你任何错误。
常量
No_Argument=0 : 指定一个不带参数的长选项
Required_Argument=1 :指定一个带一个参数的长选项
Optional_Argument=2 : 指定一个带可选参数的长选项
EndOfOptions=#255 : 由GETOPTS返回,getlongopts表明没有更多选项
类型
TOption = record
Name : String;
Has_arg : Integer;
Flag : PChar;
Value : Char;
end;
POption = ^TOption;
这个类型用来向Getlongopts传递长选项,name是选项的名称,has_arg描述该选项是否需要一个参数。Flag是一个指针指向Value,如果其为非空。POption是一个Toption类型的指针,是Getlongopts的一个参数。
变量
OptArg:String;保存选项的参数
Optind:Longint;当前参数的是第几个,当所有选项一被处理,optind是第一个非选项参数的索引。这是一个只读变量,注:它可以等同于P
文档评论(0)