开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 15334|回复: 97
收起左侧

[已结束] 【NO.0019】用自己的话解释一下API

  [复制链接]
结帖率:100% (2/2)
发表于 2010-5-12 09:42:39 | 显示全部楼层 |阅读模式   山西省吕梁市
本帖最后由 鲁凯啸 于 2010-8-11 10:49 编辑

自己的话解释一下API是什么!
复制粘贴者请勿回答~!

请用自己的话解释一下,
目的是要让新手更容易的了解api...


只要是用自己的话解释者,一律+10金币
解释基本符合概念者,再+10金币
正确者,再+20金币





居然有许多人问,“什么是API函数?”,给其他程序员看见了确实会笑掉牙齿。
首先要说的是易语言是全中文的,但是与之相矛盾的问题又来了,API函数不是英文的吗?

那么咱就来揭露一下这个能够打退不少新手的家伙,至于他为什么能打退咱们广大新手呢?
其一就不用多说,因为冲着易语言来的不少朋友都是看中了全中文编程,API刚好是鸟语。
其二就要看看API的“专业解释”了:
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
果然很好很专业,不过实际上专业与非专业的区别就是用词的不同而已。
于是乎,哥就从假设看此文的都是从来米有接触过编程的群众的处境来进行阐述吧。
1.动态链接库:
也是很好很专业的名词,文件名后面是.dll的文件相信不少见,但是他到底干啥的呢?
其实他就是传说中的动态链接库,他的里面封装了程序代码并且把执行不同功能的代码分成一块一块的再给每一块都取了一些名字。他到底有什么用呢?
当代的编程其实不全是一个技术活了,而转变成了体力活。为什么这么说呢?
假设我是一个牛逼的程序员,那么我来分享一下我的日记:
1.今天我很高兴,我把播放MP3的代码写出来了。
2.今天我很高兴,我把上次写的播放MP3重新写了一遍,用在了新的程序上。
3.今天我很郁闷,我又把上次写过播放MP3重新写了一遍,用在了新的程序上,这非常无聊。
4.今天我很恼火,我又把上次写过播放MP3重新写了一遍,用在了新的程序上,他妹的太麻烦了。
于是随着程序员的恼火,动态链接库产生了。
那么继续假设我是一个牛逼的程序员,分享一下我的日记:
1.今天我很高兴,我把播放MP3的代码写出来了,并且保存到了DLL(动态链接库)里面。
2.今天我很高兴,又有一个程序需要播放MP3,我直接把DLL拷贝下来,然后引用就可以了。
3.今天我很高兴,我又把我的DLL里面添加了播放视频的代码。
4.今天我非常高兴,我用我积累的DLL里面的代码轻轻松松就写了一个视频播放器。
现在是不是知道了这个DLL有啥用了?
那什么是API函数呢,其实就是封装在系统自带的DLL里面的命令,而且是用C语言写的。
所以说,API函数是英文是不可避免的,但是我们知道他一定是用来简化我们编程的。
如何正确认识API函数呢?
随着Windwos时代的到来,Windows像一堵巨大的墙,把我们和计算机的硬件隔离开。
对于DOS汇编程序员来说,就像在一夜之间我们发现:

自己曾经学过的几乎所有东西都被Windows一麻袋装到一个叫“内核”的金库里了!
金库当然有保安,所以我们再也无法像在DOS下那样闯入金库内邪恶了。
那咱们写程序咋办呢?程序的运行就是要这坨铁给我们干活。
于是乎Windows留下了一些叫做API(应用程序编程接口)的东西,
使我们通过API函数来操作硬件,就像是一个送信的,我们只需要告诉他干什么,至于怎么干就是内核的事了,就是系统与应用程序的接口了。
一切繁琐的工作全部被封装在系统的DLL内,我们直接把函数拿来用就OK,怎么用捏,就是API函数的使用了:我们只需要告诉易语言我们要用哪个函数(声明),就可以大大方方的用了。
由此看来,API函数并不麻烦,相比之下API函数其实简化了计算机编程!


与易语言对照 API函数更加显得平凡!
易语言也是把一些繁琐的东西写好了封装在了“库”里面。

我们一个命令就可以实现强大的功能,是因为繁琐的编程细节已经是早早准备好!
比如:
咱们MP3播放器。 一句命令 播放MP3()
但是实际上并没有这么简单,在我们看不到的地方。
洋洋洒洒的几百行代码为我们完成了解码,播放等工作。
对于一个牛人来说,洋洋洒洒的写个几百行然后听上一段《你好陈水扁》。
这似乎很洋气,但是,这过于繁琐。对于用户来说,白马黑马,能跑的就是好马!
所以一句命令 播放MP3() 和几百行代码 产生的效应是一样的。
于是牛人自然心里极度不平衡,想问候易语言他全家女性。
也许现在你会得意,不过这也暴露出易语言不和谐的一面:

易语言为了编程的快捷和方便,隐藏了大量Windows编程的细节
使我们无法知道一个应用程序具体是如何运行的。

学习易语言一段时间之后,虽然我们把现有控件的属性、方法、事件都研究得滚瓜乱熟,却发现自己的编程技术无法再深入,控件有的我们就能实现,控件没有的我们就不能实现,这时候就需要深入了解Windows编程的细节、熟悉一批API的用法了。

所以总结:
1.API函数不神奇,与易语言命令唯一的区别就是要声明一下!
2.易语言编程,任何语言在windows编程离不开API函数!
发表于 2010-5-12 10:10:01 | 显示全部楼层   浙江省嘉兴市
Windows  操作系统中的函数(函数和易语言的子程序一个意思)

评分

参与人数 1精币 +10 收起 理由
鲁凯啸 + 10 回复内容认真红包鼓励

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:86% (6/7)
发表于 2010-5-12 10:53:17 | 显示全部楼层   北京市北京市
API调用DLL库里的数据。而DLL是微软开发自带。。。

评分

参与人数 1精币 +20 收起 理由
鲁凯啸 + 20 自己也是可以编写一些dll的!

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2010-5-12 11:21:30 | 显示全部楼层   浙江省宁波市
api 说通俗点  就是Windows  dll里的  子程序  调用api  就像  调用  你自己做的模块

{:3_57:}不知道 理解的对不  反正我是这样理解的{:3_58:}

评分

参与人数 1精币 +30 收起 理由
鲁凯啸 + 30 回复内容认真红包鼓励

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2010-5-12 11:41:28 | 显示全部楼层   吉林省白城市
API就象我们用到的易语言里面的支持库,控件之类的东西,那些都是易语言封装好了的。
还有很多功能,都存在于你的电脑中windows目录下的DLL文件里。为了更完善我们软件的功能我们也可以自已声明API

评分

参与人数 1精币 +20 收起 理由
鲁凯啸 + 20 回复内容认真红包鼓励

查看全部评分

回复 支持 反对

使用道具 举报

签到天数: 24 天

发表于 2010-5-12 12:01:19 | 显示全部楼层   山东省烟台市
api 个人理解 是微软给我们提供的的一大堆系统函数 这些函数被封装成dll 存在在我们的系统目录中 如:user32.dll gdi32.dll ……等  供我们写程序时调用,至于怎么调用dll  用易自己写个dll,自己调用就明白了。

评分

参与人数 1精币 +30 收起 理由
鲁凯啸 + 30 回复内容认真红包鼓励

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2010-5-12 12:42:17 | 显示全部楼层   广西壮族自治区南宁市
API  个人认为是调用函数 之类的吧!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2010-5-12 13:20:35 | 显示全部楼层   广西壮族自治区北海市
把系统中的dll当作模块,API 就是模块中的函数{:3_199:}

评分

参与人数 1精币 +40 收起 理由
鲁凯啸 + 40 回复内容认真红包鼓励

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:89% (17/19)

签到天数: 26 天

发表于 2010-5-12 14:16:39 | 显示全部楼层   广西壮族自治区崇左市
API就相当与易语言自己写的每一个子程序,存放起来。成为类似模块的文件。和系统的DLL一样。在我们要到的功能里,就调用相对的“模块”。来实现。

评分

参与人数 1精币 +40 收起 理由
鲁凯啸 + 40 回复内容认真红包鼓励

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 3 天

发表于 2010-5-12 15:28:59 | 显示全部楼层   浙江省温州市
{:3_45:}大家讲的好好哦~   有点明白了~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表