大家都知道vb调用的api并不是像C/C++、delphi那样通过函数原形和静态连接库来
引入的。vb调用api是通过Declare语句声明来实现的,这种方式的的调用从实现上和性
能上都没有C/C++那些直接引入的好.以下是vb调用api的大体实现方式:
首先,vb为每一条api分配4个字节的存储空间用来存放函数指针,并且保存api的函
数信息(dll名称很函数名称);
其次,在我们每次调用api时vb先判断4个字节的存储区里是否存放有函数指针,如
果有就把函数按stdcall的方式把参数压栈并调用它;如果没则先调用DllFunctionCall
(在msvbvm6.dll中)加载相应函数的dll获取函数指针并按前述方式调用它.
所以vb调用在调用api在检查函数指针上消耗了性能并增加了程序的代码量.那么有
没直接使vb像C/C++那样引入api的方法呢?
当然有了,那就是通过制作API类型库再在vb中引用此类型库的方法.网上也有很多
这样的类型库(如:WIN.TLB,VBAPI.tlp等等),但并不是很全面所以很多时候要实现vb直接
引入api还是得自己量身定做类型库,可惜要制作类型库必须借助IDL语言或ODL语言,而对
于很多vb用户来说这两们语言都是很少接触且国内这方面的书也很少.VB6ApiTypeLibMaker
就是为了解决以上问题而写的编程工具.只要你在vb中会使用api,她就可以把你的api翻
译成odl语言源程序并编译成类型库,大大的简化了日常的编程工作而且提升了vb程序的
性能.
vb直接引入API制作工具
最新推荐文章于 2023-10-11 15:25:46 发布