ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 综合应用 > 对Windows API进行封装(1)

对Windows API进行封装(1)

作者:绿色风 分类: 时间:2022-08-18 浏览:144
楼主
fangjianp
Q:为什么要对 Windows API 进行封装?

A:
在实际应用中,常常要将 API 调用封装为自己的 VBA 函数,用于代替模板中原来使用 Windows API 的部分,这样处理的原因有:
     1、在调用 API 函数之前可以先进行 VBA 的有效性检验,如果将无效的参数传递给 API 函数,可能会导致系统的崩溃;
     2、大部分文本性的 API 函数都要求定义字符串变量,然后把它传递到函数内部进行处理。使用 VBA 函数可以隐藏这些复杂性;
     3、许多 API 函数提供了一些根本用不上的参数,而 VBA 程序只显示应用程序中需要用到的参数;
     4、极少部分 API 函数可以被单独调用,大部分都需要额外的预处理,并且在调用完成后进行清除而使用 VBA 程序可以避免这些复杂的操作;
     有关 Windows API 需要封装处理的其他原因将在另外的贴中加以说明。
2楼
fangjianp
Q:为什么要对 Windows API 进行封装?(续)
A:
在我的酷贴 http://www.exceltip.net/thread-21666-1-1.html
中已经罗列了若干个封装调用 Windows API 函数的原因,这样处理的原因还有:
    5、在模块内,API 声明是私有的,对其他开发者而言,由于不知道如何使用这些 API,所以对他们来说这些 API 相当于是隐藏的。而在 VBA 中可将这些功能设置为可见;
    6、部分 API 函数,比如加密函数或 Internet 函数,在打开资源之前需要一系列的初始化操作,在使用完成后,关闭资源时又需要一系列的清除操作。将这些初始化和清除的操作封装到类模块中,然后利用 Class_InitializeClass_Terminate两个过程可以确保正确无误地打开和关闭资源;
    7、将特定的 API 封装为中间模块,使他们具有自我包含性,以便能在应用程序之间方便地使用它们;
    8、当应用程序之间包含大量的 API 调用时,要清楚地分清哪些常量属于那些函数会变得相当困难,但如果将常量封装为枚举类型并把这些类型作为 VBA 函数的参数,那么,常量的管理会变得相对较为容易。
    总之,对 API 进行包装一方面是 API 函数本身的特性所要求的,另一方面也可以使得 API 的调用变得相对较为简单、API 函数的管理将较为容易。
3楼
海洋之星
谢谢分享
4楼
水星钓鱼
学习了。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap