下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

探讨在Delphi里面调用Windows API函数

作者:课课家教育     来源: http://www.kokojia.com点击数:1632发布时间: 2017-03-01 10:00:51

标签: 操作系统程序代码应用程序

大神带你学编程,欢迎选课

  应用程序接口(即API:application Program Interface)就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。在这篇教程中,小编就和大家简单的探讨一下在Delphi里面调用Windows API。

探讨在Delphi里面调用Windows API函数_操作系统_程序代码_应用程序_课课家

  一、前提介绍

  大家都应该知道在Delphi里面对Windows的控件都进行了一个非常好的封装(将对象运行所需的资源封装在程序对象中),为得就是可以达到在Windows下快速开发应用程序的目的。这样子的话,就可以帮大家节省了很多的开发时间了,妈妈再也不用担心我们浪费时间了。为什么小编会这样说呢?那是因为我们并不需要使用格式、调用控制复杂的API来进行开发,相反我们可以直接使用Delphi的控件来进行编写应用程序。大家说,这样是不是简单方便好多呢?

  但是不是所有的控件都可以帮我们解决问题的,当有一些控件不可以解决问题的时候,此时我们就不得不使用API了。换句话说,就是Windows里面的应用程序接口。假如真的是这样子的话,那么问题就来咯?作为一名程序员,相信大家都应该知道Delphi的脚本语言是PASCAL(最早出现的结构化编程语言,具有丰富的数据类型和简洁灵活的操作语句),然而API是使用C++语言进行编写的。这样一来,这两者所使用的数据类型就是不兼容的了。那么我们应该怎样做才可以在Delphi里面进行调用数据类型不兼容的API呢?说了这么久,终于进入正题了。这就是小编要在这篇教程中为大家介绍的相关内容了,现在让我们一起来看一看吧。

  二、示范例子

  在Delphi这一个应用程序里面,我们最经常使用到的一个数据类型就是String类型了。然而这一个类型在API里面是并不支持,问题就来了?那么当大家需要在API里面获取得到一个string类型值的时候,我们应该怎样去操作呢?先不用着急,我们先来看一看下面的编程代码吧,具体的程序代码如图所示:

编程代码

  编程代码小编就已经演示完毕了,细心的朋友应该发现在这一个函数里面,小编调用了API函数里面的GetSystemDirectory。它的第一个参数是一个指针,一个指向以NULL结尾字符串的指针。从Delphi这一个应用程序的角度来说,这一种数据类型就是PCHAR。因此我们这里就有必要进行数据类型转换的步骤了,需要将其写成PChar(即sTmp)。好了第一个示范例子,就先介绍到这里吧。接下来我们再来看一看第二个示范例子吧一个例子,具体的程序代码如图所示:

进行数据类型转换

  在这一个示范例子里面,小编最终通过API函数获取得到一个应用程序的图标,来动态的改变当前应用程序的图标。API函数的ExtractIcon值返回的就是一个HICON类型,这是一个指向图标的指针。假如说我们将其编写成为下面这个程序代码:application.Icon = ExtractIcon(application.Handle, pchar(’D:\\WINNT\\regedit.exe’), 0); 不用多说,这样子经常编译一定是不通过的。为何这样说呢?难道大家没有看到它们的数据类型都不一样吗?application.Icon这一个属性是Ticon类型的,在这里我们首先要做的就是先创建一个Ticon,然后就将API的返回值赋予给Ticon.Handle,最后大家仅仅只需要把ICON赋值给application.Icon就可以了。按照小编刚刚所说的做法,就一定可以解决了我们当前的难题哟。

  三、小编总结

  在这篇教程中,小编主要向大家演示了两个示范例子。在这两个示范例子里面,我们可以得到一个结论,那就是:在Delphi中是并不直接支持Windows里面的数据类型,仅仅只可以通过封装的形式来进行支持。假如说大家想要熟练地进行调用API函数,那么我们首先要做的第一件事情就是要熟悉Delphi里面的封装机制。有人会问小编,怎样才可以快速的熟悉呢?小编的建议就是:多写、多看、多实践。因为只有这样不断的练习,大家才可以随心所欲的调用API函数哟,大家不妨来尝试一下。

  小编结语:

  通过这篇编程语言教程,不知道大家是否已经学会了在Delphi里面调用Windows API呢?如果还是不太懂,可以看多几遍教程哟,毕竟Delphi还是一种较为受欢迎的程序语言。课课家教育每天更新不同的教程,一起来学习吧。

赞(15)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程