VB无所不能之五:建立“标准”DLL动态链接库文件(1)
VB无所不能之五:建立“标准”DLL动态链接库文件(1)
作者:钟声
博客地址:http://blog.csdn.net/useway
动态链接库经常被认为是VC或者Dephi的专利,DLL文件可以将你编写的函数动态的发布,并可以被其他程序很方便的调用。
有朋友会问了,在VB里面不是有一个叫做“ActiveX DLL”的项目类型吗,生成的文件最终也是“DLL”文件啊?
没错,最终文件确实是DLL文件,但其实严格意义上VB建立的DLL并不是像VC一样的动态链接库,VB建立的是ActiveX DLL,不能像kernel32.dll”那样通过“Declare Function .....”来调用的。
本文中将详细讲解用VB生成一个DLL动态链接库文件的方法,请注意,本文将详细讲述生成一个像VC的动态链接库文件,并且调用方法也是用“Declare Function .....”来调用。
好,那么我们来建立一个DLL吧。
原理讲述:
VB在编译文件的时候,采取的是两次编译的方法:
编译第一步,首先是调用c2.exe产生OBJ文件
“c2.exe”这个文件在“C:\Program Files\Microsoft Visual Studio\VB98”目录中,大家可以去找找看。“c2.exe”就是VB在编译的时候调用的命令。
编译第二步,调用Link.exe对OBJ文件进行链接
“link.exe”也在那个文件夹中,这个文件和上面的那个文件是一样的,都是一个命令行工具。用过命令行工具的朋友肯定知道,命令行工具一般都可以制定相应参数的,对于“link.exe”也一样,他也可以通过改变参数来调整其编译链接后的结果。
那么,其参数如下:
usage: LINK [options] [files] [@commandfile]
options:
/ALIGN:#
 
相关文档:
一开始 以为VB的线程 不是像网上人说的那么脆弱。。。哎 现在领略到了。。。VPrivate Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByVal lpParameter As Long, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
Pri ......
Option Explicit
'==================================================
' 函数: ReturnSM
'
' 功能: 返回字符串中没个字符的拼音声母第一个字母
'
' 注意: 该函数只能处理3755个常用汉字(B0 - D7)
' 若超出函数的范围将返回常数 ERR_RESULT$
'
' 入口: Str 待处理的字符串
'
Public Function ReturnSM$(ByVal S ......
Asc 函数
返回一个 Integer,代表字符串中首字母的字符代码。
语法:
Asc(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
说明:在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 &ndas ......
◆请由此确定是否被恶意修改◆
作者:我心飞翔
VB中引入本DLL的方法
方法一:选择“工程(P)”菜单下的“引用(N)”,在出现的对话框中点“浏览按钮”,并找到DLL所在位置。
方法二:分两步走
(1)注册动态链接库,使用regsvr32命令。在运行对话框中,输入“regsvr32 DLL完整路 ......