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

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

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

现在,你就能调用来自BLOCK.O或block.o 的MoveWord和FillWord例程了。

像上面的声明,经常用来访问由汇编语言编写的外部例程,你也可以直接在Object Pascal源代码中放置汇编语言写的例程。关于这方面的信息,请参考Inline assembler code。

从库导入函数

要从一个动态调入库(.so或.DLL)导入例程,把如下格式的指示字

external stringConstant;

放在一个正常的过程头或函数头的尾部。这里,stringConstant是用单引号括起来的库文件的名称。在Windwos下

function SomeFunction(S: string): string; external 'strlib.dll';

从strlib.dll导入一个叫做SomeFunction的函数。

在Linux下,

function SomeFunction(S: string): string; external 'strlib.so';

从strlib.so导入一个叫做SomeFunction的函数。

在导入例程时,它的名称可以和库中的名称不同。如果你这样做,在external指示字中指定它的原始名称。

- 83 - 比如,

Procedures and functions

external stringConstant1 name stringConstant2;

这里,第一个stringConstant给出了库文件的名称,第二个stringConstant是例程的原始名称。 在Windows下:比如,下面的声明从user32.dll(Windows API的一部分)导入一个函数。

function MessageBox(HWnd: Integer; Text, Caption: PChar; Flags: Integer): Integer; stdcall; external 'user32.dll' name 'MessageBoxA';

函数的原始名称是MessageBoxA,但导入后的名称是MessageBox。

你可以使用一个数字代替名称,来指定你要导入的例程:

external stringConstant index integerConstant;

这里,integerConstant是输出表(export table)中例程的索引。

在Linux下:比如,下面的声明从libc.so.6导入一个标准系统函数。

function OpenFile(const PathName: PChar; Flags: Integer): Integer; cdecl;

external 'libc.so.6' name 'open';

函数的原始名称是open,但导入后的名称是OpenFile。

在你的导入声明中,要保证例程的名称没有拼写错误,并且大小写一致。但在以后调用这些例程时,它们是不区分大小写的。

关于库的更多信息,请参考Libraries and packages。

Overloading procedures and functions(重载过程和函数)

你能使用相同的名称在一个作用域声明多个例程,这叫做重载。重载例程必须使用overload指示字,并且它们有不同的参数列表。比如,考虑下面的声明

function Divide(X, Y: Real): Real; overload;

begin

Result := X/Y;

end;

function Divide(X, Y: Integer): Integer; overload;


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

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

    • 崔建英
      崔建英

      相信通过杨洋不懈的努力和追求

      • 张鹏志
        张鹏志

        当时买养老金就好了

    • 闾丘晓
      闾丘晓

      海洋公约的缔约国当然可以说12海里是入侵

    • 徐全宾
      徐全宾

      丑得我不要不要的作

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