b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

pascal 视频教程_pascal和basic_pascal选择排序(101)

电脑杂谈  发布时间:2016-12-28 07:02:37  来源:网络整理

Library initialization code(库初始化代码)

一个库的块(block)所包含的语句构成了库的初始化代码,每当库被调入时,这些代码执行一次。它们的典型任务包括注册窗口类和初始化变量等。库的初始化代码也可以使用ExitProc变量安装一个退出过程(exit procedure),就像在Exit procedures中描述的那样。退出过程在库被卸载时执行。

库的初始化代码通过设定ExitCode变量为非0来标记一个错误。ExitCode在System单元声明,默认值时0。若库的初始化代码把ExitCode设置为其它值,库将被卸载,调用程序被通知发生了错误。类似地,若初始化代码执行中发生了未处理的异常,调用程序也将被通知调入库时失败。 这里是一个关于库初始化代码和退出过程的例子。 library Test; var

SaveExit: Pointer; procedure LibExit; begin ...// 库的退出代码 ExitProc := SaveExit; // 恢复退出过程链表end; begin ...// 库的初始化代码 SaveExit := ExitProc; // 保存退出过程链表 ExitProc := @LibExit;

// 设置LibExitend.

当库被卸载时,通过重复调用存储在ExitProc中的地址执行退出过程,直到库使用的单元,它们的初始化代码在库的初始化代码执行之前被执行,它们的结束化部分在库的退出过程执行后才执行。

Global variables in a library(库中的全局变量)在共享库中声明的全局变量不能被Object Pascal程序导入。一个库一次能被多个程序使用,但每个程序在自己的进程空间中有一个库拷贝,且每个拷贝有自己的全局变量集合。对于在多个库间(或一个库的多个实例间)共享内存,它们必须使用内存映射文件。更进一步的信息,请参考系统文档。

Libraries and system variables(库和系统变量)在System单元声明的几个变量对那些程序库有特殊影响。使用是库执行,IsLibrary在程序中总是True,在库中总是实例句柄,CmdLine在库中总是nil。

DLLProc变量允许一个库监测操作系统对它的入口点(线程的库使用。DLLProc在Windows和Linux下都存在,但用起来不同。在于多线程程序,在Linux下,它用来判断库何时被卸载。对所有的退出行为,你应该使用sections,而不是退出过程。

要监测操作系统调用,创建一个回调过程,它接收一个整数参数,比如,procedure DLLHandler(Reason: Integer);

IsLibrary变量来确定代码是作为程序还False。在库的生命期内,entry point)的调用, ExitProc变成nil。所有被HInstance存储了它的Windows下,DLLProc用finalization - 135 -

为退出过程这个特征通常只是由支持多

Libraries and packages

然后把过程地址赋给DLLProc变量。当过程被调用时,它(参数)被赋予如下值: DLL_PROCESS_DETACH

DLL_THREAD_ATTACH

DLL_THREAD_DETACH 表明库从调用进程的地址空间分离,这是一个clean exit或调用FreeLibrary(在Linux下是dlclose)的结果。 表明当前进程正创建一个新线程(Windows) 表明一个线程(干净地)结束(Windows)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-101.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...