VB中创建的DLL只是COM组件,无法作为输出函数的DLL。今天从袁波哪里搞到一种可以创建输出函数的DLL的方法。
VB编译文件实际上采取了两次编译的方法,首先是调用c2.exe产生OBJ文件,然后调用Link.exe连接。如果在link的时候添加EXPORT选项,实际上是可以输出函数的。但是,在VB的工程选项中将这些屏蔽了。而且过分的是:VB在Build完成后会将OBJ文件删除,这样就无法通过Link来输出函数了。不过我找到一个比较龌鹾的变通的方法,就是先创建一个Exe工程,在Form_Load事件里面写下面的语句:
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Private Sub Form_Load()
If (MsgBox("hehe", vbOKCancel) = vbOK) Then
Shell "link2.exe " & Command$
End If
End
End Sub
然后编译为linktemp.exe,接下来将LINK.EXE改名为Link2.exe,将linktemp.exe改名为link.exe。这样在VB调用link.exe时会弹出对话框,处理就会中断。这时就可以有机会将OBJ文件拷贝出来了 J
然后我创建了一个ActiveX DLL工程,在这个工程里面添加一个Module并创建一个Public函数mathadd:
Public Function mathadd(ByVal a As Long, ByVal b As Long) As Long
mathadd = a + b
End Function
Builder这个工程,在Link的时候就会中断。然后把创建的Class1.obj、Module1.obj、Project1.obj备份出来。
然后就可以调用Link2.exe连接OBJ到DLL了,我的连接代码是:
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 /VERS
注意里面的/ENTRY和/EXPORT开关,/EXPORT开关声明了输出函数mathadd。这样就大功告成了 :-D,可以被其他语言引入,例如在VB中,只需要:
Private Declare Function mathadd Lib "e:\vbdll\ProjectOK.dll" (ByVal a As Long, ByVal b As Long) As Long
就可以了。
分享到:
相关推荐
VB中创建可以输出函数的DLL[VB中创建可以输出函数的DLL]-精品源代码
1. 使用VB MakeDllLink,可以更方便地创建带输出函数的DLL。打开工具,指定VB源代码文件或已编译的.VBP项目文件。 2. 在工具中,定义DLL的输出函数名和参数列表,这将自动生成相应的声明代码,确保其他应用程序能...
生成的函数声明文件(通常为`.bas`文件)可以直接引入到VB项目中,确保正确调用DLL中的函数,避免了手动编写繁琐的声明代码。 具体操作流程如下: 1. 使用VB编写包含所需函数的模块。 2. 使用LinkMakeDLL.exe或Link...
在VB6中创建能作为输出函数的DLL是一个相对复杂但非常实用的技术,它涉及到VB6的编译机制和DLL的构建过程。VB6虽然默认情况下创建的DLL是COM组件,但通过特定的方法,我们可以实现创建标准DLL,使其能够提供API级别...
3. 在VB6中创建一个对象,该对象将代表C# DLL中的接口。例如: ```vb Private cSharpDll As New CSharpDll.ICSharpDll ``` 4. 使用VB6对象调用C#方法: ```vb Dim result As Integer result = cSharpDll.Some...
在VB(Visual Basic)编程环境中,创建一个可以输出函数的DLL(动态链接库)并不是默认支持的功能。然而,通过一些技巧和外部工具,我们可以实现这一目标。本教程将重点介绍如何利用VB创建一个通用的DLL,并导出其中...
使用 VB6 创建不用注册使用的带输出函数的动态链接库(DLL),并且带有函数的声明文件,改名后是VB的标准模块,直接引用,其使用方法与API相同。 感谢Web ID 马大哈的同类工具软件的启发。 如果发现Bug,请与我联系...
通DLL一样拥有输出函数呢?请使用本程序吧!它能让你ActiveDLL内的函数变 成对外公开的函数!这样,一个DLL就拥有“引用”与“声明”两种使用方法! 使用时请先将VB安装目录下原LINK.EXE改名为LINK2.EXE,再将本程序...
在VB.NET中创建GIF动画DLL,开发者通常会使用System.Drawing命名空间中的类,如Bitmap和Graphics,它们提供了绘制和操作图像的基本功能。开发者可能还需要使用第三方库,比如Gif.Components.dll,这是一个专门处理...
- 在VB代码中,你可以像调用本地函数一样调用DLL中的函数。 示例: ```vb Private Declare Function MyExportedFunction Lib "YourDLLName.dll" () Sub Main() Call MyExportedFunction End Sub ``` 5. ...
总的来说,这个VB6插件是一个针对ActiveDLL的增强工具,它扩展了VB6开发者的功能,允许他们在DLL中定义输出函数,从而更好地实现与调用程序的交互。通过安装和使用这个插件,开发者可以提升他们的DLL项目复杂性和...
添加引用后,就可以在VB代码中像调用普通函数一样调用DLL中的函数了。在VB6中,使用`Call`关键字和`Declare`语句,如`Call MyFunction(arg1)`。在VB.NET中,直接使用函数名,如`MyFunction(arg1)`。 五、错误处理和...
VB函数DLL生成器是一种工具,主要用于将Visual Basic (VB)编写的函数封装成动态链接库(DLL)文件。DLL文件是Windows操作系统中的一个重要组件,它允许多个程序共享同一段代码和数据,从而节省内存资源并提高系统效率...
2. 现在VB项目已经知道了DLL的存在,你可以像使用任何其他VB对象一样使用DLL中的函数。例如,如果你有一个名为`MyFunction`的函数,你可以这样调用它:`MyFunction 参数1, 参数2` 3. 请确保参数类型和DLL函数声明的...
VB制作有导出函数的DLL, 默认vb生成的dll没有输出函数, 原因是在连接时没有指明, 所以我们自己写一个程序替换原来的link.exe, 就是在连接时处理一下就可以了。 把下载的link.exe替换原来的link.exe
在 VB6.0 编写的 DLL 中,我们定义了一个名为 `jia` 的函数,该函数接受三个整数参数 `a`、`b` 和 `c`,并返回一个布尔值。如果三个参数都满足某个条件,我们就返回 `True`,否则返回 `False`。 ```vb Public ...
5. **调用DLL函数**:在VB的代码中,像调用普通VB函数一样调用DLL函数: ```vb Dim result As Integer result = Add(3, 5) MsgBox "Result: " & result ``` 6. **错误处理**:VB的错误处理机制与VC++不同,...
然后,可以直接像调用本地函数一样调用DLL中的函数。 9. **readme.txt和@PSC_ReadMe_54190_1.txt**:这些可能是项目相关的说明文件,通常包含关于DLL使用、注意事项或版本信息的描述。 10. **错误处理**:在设计...