VB无所不能之五:建立“标准”DLL动态链接库文件(2)
——作者:钟声
昨天我们讲到,如何通过特殊方法获取OBJ文件,那么今天我们继续讲如何进行编译连接。
一、首先我们看看这种特殊方法的操作准备步骤:
步骤一:建立一个假的“Link.exe”;
建立一个新的项目,在那个项目中建立一个“Form”,然后,在“Form”中加入如下代码:
Sub Form_Load()
MsgBox
"现在可以拷贝OBJ文件了!!"
End
End Sub
End
End Sub
编译为:Link.exe
步骤二:将“C:/Program Files/Microsoft Visual Studio/VB98/Link.exe”改名为“Link2.exe”;
步骤三:将假的那个Link.exe复制到“C:/Program Files/Microsoft Visual Studio/VB98/”中;
二
、建立一个ActiveX DLL
步骤一:建立一个新项目,选择“ActiveX DLL”,然后建立一个“Module”在代码中加入如下代码:
Function fun1(ByVal a
As Long, ByVal b
As Long)
As Long
fun1 = a + b
End Function
Function fun2() As Long
fun2 = 1
End Function
fun1 = a + b
End Function
Function fun2() As Long
fun2 = 1
End Function
步骤二:建立一个空的“Class” ;
步骤三:用VB菜单编译;
步骤四:复制出OBJ文件;
当编译的时候会弹出一个对话框:
![](http://hi.csdn.net/attachment/201004/15/0_12713264096hO8.gif)
步骤五:迅速将这个文件夹中新出现的三个文件复制出来;
三个文件分别为:Class1.OBJ,Module1.OBJ,Project1.OBJ
将这三个文件复制到:“c:/abc”这个文件夹。
三、进行编译连接工作
步骤一:建立一个Bat文件,内容如下:
cd c:/Program Files/Microsoft Visual Studio/VB98
link2.exe "c:/abc/Class1.obj" "c:/abc/Module1.obj" "c:/abc/Project1.obj" "d:/Program Files/Microsoft Visual Studio/VB98/VBAEXE6.LIB" /ENTRY:__vbaS /EXPORT:fun1 /EXPORT:fun2 /OUT: "c:/abc/ProjectOK.dll" /BASE:0x11000000 /SUBSYSTEM:WINDOWS,4.0 /VERS
link2.exe "c:/abc/Class1.obj" "c:/abc/Module1.obj" "c:/abc/Project1.obj" "d:/Program Files/Microsoft Visual Studio/VB98/VBAEXE6.LIB" /ENTRY:__vbaS /EXPORT:fun1 /EXPORT:fun2 /OUT: "c:/abc/ProjectOK.dll" /BASE:0x11000000 /SUBSYSTEM:WINDOWS,4.0 /VERS
步骤二:将这个bat文件复制到“C:/abc”
步骤三:在c:/abc中执行bat文件,生成DLL文件“ProjectOK.dll”在文件夹中
四、好了,现在我们测试一下
建立一个新的项目,再建立一个“Form”,加入两个按钮,在“Form”中粘贴如下代码:
Declare
Function fun1 Lib "ProjectOK.dll" (ByVal a
As Long, ByVal b
As Long)
As Long
Declare Function fun2 Lib "ProjectOK.dll" () As Long
Sub Command1_Click()
Declare Function fun2 Lib "ProjectOK.dll" () As Long
Sub Command1_Click()
MsgBox fun1(100, 200)
End Sub
Sub Command2_Click()
End Sub
Sub Command2_Click()
MsgBox fun2()
End Sub
End Sub
然后,测试一下,呵呵,成功!
.
.
.