静态调用简单,动态调用麻烦;静态调用占用资源多,动态调用占用资源少。
静态调用就是常用的申明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中,便可直接调用。
如何用VB调用dll中的函数
(一).静态调用其步骤如下:1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下;2.把你的youApp.lib拷到你目标工程(需调用youApp.DLL的工程)目录下;3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程)目 录下;4.打开你的目标工程选中工程,...
vb中如何调用dll?麻烦举个例子吧~~
如果dll文件是你自己写的,在你的程序里直接用就行拉 如:dim xx as new [自己写的类名]剩下的使用 xx 调用就可以看到你的程序里写的函数了
VB究竟怎样调用dll
一个DLL中的函数要想被VB调用,必须满足两个条件:一是调用方式为stdcall,另一个是必须是export的。要做到第一条,只须在函数声明前加上__stdcall关键字。如: short __stdcall sample(short nLen, short *buffer) 要做到第二条,需要在*.def文件中加上如下的几行: EXPORTS sample @1 这里的sam...
vb dll引用
DLL 一种是active dll 直接如图所示在 引用 菜单里选择你想要的DLL,然后代码窗口里dim 变量 as 类型 然后使用,另一种是标准DLL 就直接和声明API函数一样 Private Declare PtrSafe Sub File Lib "QMPlugin.dll" Alias "CopyFile" (ByVal aa As String, ByVal bb As String)...
VB如何调用dll函数
"dll.dll" (x As String) As String 当程序结束的时候系统回自动释放DLL调用。动态调用使用LoadLibery(DLL名),系统会检查DLL是否调入内存。如果调入了,可直接调用DLL里的所有函数,没有就会把DLL加入目标进程的进程空间。通过函数GetProcAddress确定函数入口地址,然后调用,后一种方法VB里不常用的。
vb6.0 怎么调用 dll文件 最好给个例子
工程->引用->浏览里找到那个dll 定义:dim testdll as 类模块名 实例化:set testdll=new 类模块名 使用方法就是: testdll.过程(函数)你想要怎么样的例子?
VB如何调用dll
在调用自己写的dll之前,想来看看VB是如何调用API的:Option ExplicitPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" _(ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Sub Command1_Click() Dim Hwnd As Long Hwnd = FindWindow(vbNull...
VB如何调用.DLL文件里的函数?最好有具体的例子
DLL需要注册,放到哪里不重要,主要是注册 在运行那里,输入:regsvr32 <文件名> 这样你就可以直接使用了,不知道我说的是不是正确。
VB怎么调用DLL文件 这个DLL文件是自己用VB写的放在主程序一个文件夹里面...
case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;} return TRUE;} \/\/我的函数 int __stdcall Encrypt ( int p, int k ){ int c = p + k ;return c ;} Cipher.def:LIBRARY Cipher EXPORTS Encrypt 编译后,将Cipher.dll复制到“D:\\WINNT\\System32”目录。在VB中调用:Option ...
如何让VB调用外部的DLL?
要声明一个DLL过程,首先需要在代码窗口的"通用(General)"部分增加一个Declare语句。如果该过程返回一个值,应将其声明为\\x0d\\x0aFunction:\\x0d\\x0aDeclareFunctionpublicnameLib"libname"[Alias"alias"][([[ByVal]variable[Astype][,[ByVal]variable[Astype]]...])]AsType\\x0d\\x0a如果...