### VB编写DLL学习知识点 #### 一、VB中创建DLL的基本步骤 1. **启动VB:** 首先打开Visual Basic(以下简称为VB),选择新建项目。 2. **选择工程类型:** 在新建项目的界面中选择“ActiveX DLL”工程类型。这将创建一个新的DLL工程模板。 3. **编写代码:** 在工程中添加类或模块,并编写所需的功能代码。这些代码通常用于定义函数、属性等,以便其他应用程序能够调用。 4. **保存与编译:** 编辑完成后,保存工程文件(通常是`.cls`和`.vbw`文件)。接着,在“文件”菜单中选择“生成 .dll”选项进行编译。编译过程中,你会看到一个进度条提示“正在生成 .dll 文件”。 5. **生成的DLL文件:** 编译完成后,会得到一个带有齿轮图标的DLL文件。该文件可以被其他应用程序所引用。 6. **引用DLL:** - 创建一个“标准EXE”工程。 - 在“工程”菜单中选择“引用”。 - 寻找并选择刚才生成的DLL文件,在其前的复选框中打勾。 - 现在可以在当前项目中调用该DLL提供的方法。 #### 二、VB中创建输出函数的DLL 尽管默认情况下,VB创建的DLL主要用于COM组件,但也可以通过特殊方法创建能够输出函数的DLL。 1. **创建Exe工程:** - 创建一个新的Exe工程。 - 在Form_Load事件中编写一段代码,用于触发外部链接器的执行,从而可以自定义链接过程。 - 代码示例: ```vb Sub Main If MsgBox("哈哈", vbOKCancel) = vbOK Then Shell "link2.exe" & Command$ End If End Sub ``` 2. **修改链接器命令:** - 将LINK.EXE重命名为Link2.exe。 - 将编译好的LinkTemp.EXE重命名为Link.exe。 - 当在VB中执行构建时,将弹出对话框,此时可以拷贝出OBJ文件。 3. **创建ActiveX DLL工程:** - 在新的ActiveX DLL工程中添加模块。 - 定义公共函数,例如: ```vb Public Function mathadd(ByVal a As Long, ByVal b As Long) As Long mathadd = a + b End Function ``` 4. **手动链接OBJ到DLL:** - 使用修改后的Link2.exe连接OBJ文件到DLL。链接命令示例: ```cmd Link2.exe "e:\vbdll\Class1.obj" "e:\vbdll\Module1.obj" "e:\vbdll\Project1.obj" "E:\Program Files\Microsoft Visual Studio\VB98\VBAEXE6.LIB" /ENTRY:__vbaS /EXPORT:mathadd /OUT:"e:\vbdll\ProjectOK.dll" /BASE:0x11000000 /SUBSYSTEM:WINDOWS,4.0 /VER ``` 5. **测试DLL:** - 在VB或其他支持DLL导入的语言中调用该DLL中的函数。例如: ```vb Private Declare Function mathadd Lib "e:\vbdll\ProjectOK.dll" (ByVal a As Long, ByVal b As Long) As Long ``` #### 三、解决DLL找不到的问题 1. **确保DLL路径正确:** 确认DLL文件是否放置在正确的路径中,并且路径设置正确。 2. **注册DLL:** 对于某些情况,可能需要注册DLL文件。可以通过`regsvr32`命令来注册DLL文件。例如: ```cmd regsvr32 e:\vbdll\ProjectOK.dll ``` 3. **系统环境变量:** 检查系统的环境变量设置,确认包含DLL文件的目录是否在PATH环境变量中。 4. **示例代码:** - 下载示例工程,查看具体实现细节。 - 示例工程中包含一个简单的DLL调用逻辑: ```vb '模块中定义 Public Declare Function fnMyFunc Lib "MYDLL.DLL" () As Long '按钮中放入 Dim str1 As String str1 = "函数调用成功" If (fnMyFunc() = 42) Then MsgBox str1 End If ``` 以上是关于如何在VB中创建DLL以及如何创建可以输出函数的DLL的一些详细步骤和注意事项。通过这些步骤,你可以有效地利用VB来创建DLL文件,并在其他应用程序中进行调用。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助