静态调用简单,动态调用麻烦;静态调用占用资源多,动态调用占用资源少。
静态调用就是常用的申明API,一个DLL库里有很多的函数可供调用,把要用的申明即可。比如:Public/Private Declare Function [函数名] Lib "DLL文件名" [Alias "别名"] (参数变量表) [As 返回值的数据类型]
示例:Private Declare Function Test Lib "dll.dll" (x As String) As String
当程序结束的时候系统回自动释放DLL调用。
动态调用使用LoadLibery(DLL名),系统会检查DLL是否调入内存。如果调入了,可直接调用DLL里的所有函数,没有就会把DLL加入目标进程的进程空间。通过函数GetProcAddress确定函数入口地址,然后调用,后一种方法VB里不常用的。
扩展资料
静态调用详解:
制作好DLL之后,首先用Declare声明语句在窗体级或模块级或全局模块的代码声明段进行声明,将动态链接库中的函数声明到VB中,供VB程序调用。
语法格式1:
Public/Private Declare Sub [函数名] Lib "DLL文件名" [Alias "别名"] (参数变量表)
语法格式2:
Public/Private Declare Function [函数名] Lib "DLL文件名" [Alias "别名"] (参数变量表) [As 返回值的数据类型]
在声明中首先用Declare关键字表示声明DLL中的函数。在C语言中有的函数类型为VOID,它表示不具有返回值,则必须用关键字Sub将其声明成过程。有的函数具有返回值,则必须用关键字Function将其声明成函数,并且在声明语句的最后要用AS关键字指明函数返回值的类型。
例如add.DLL在VB中就可以声明为:
Declare Function ADD Lib "c:\add.dll" (ByVal X AS Integer, ByVal Y AS Integer, ByVal filein as string) AS Integer
通过此声明语句将函数ADD声明到VB中,便可直接调用。