`
lovnet
  • 浏览: 6880789 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

VB中创建可以输出函数的DLL

阅读更多

VB中创建的DLL只是COM组件,无法作为输出函数的DLL。今天从袁波哪里搞到一种可以创建输出函数的DLL的方法。

VB编译文件实际上采取了两次编译的方法,首先是调用c2.exe产生OBJ文件,然后调用Link.exe连接。如果在link的时候添加EXPORT选项,实际上是可以输出函数的。但是,在VB的工程选项中将这些屏蔽了。而且过分的是:VBBuild完成后会将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.objModule1.objProject1.obj备份出来。

然后就可以调用Link2.exe连接OBJDLL了,我的连接代码是:

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]-精品源代码

    VB中创建可以输出函数的DLL[VB中创建可以输出函数的DLL]-精品源代码

    VB MakeDllLink 创建带输出函数的DLL工具的最新帮助文件

    1. 使用VB MakeDllLink,可以更方便地创建带输出函数的DLL。打开工具,指定VB源代码文件或已编译的.VBP项目文件。 2. 在工具中,定义DLL的输出函数名和参数列表,这将自动生成相应的声明代码,确保其他应用程序能...

    VB Make Dll Link 创建可输出函数的DLL工具

    生成的函数声明文件(通常为`.bas`文件)可以直接引入到VB项目中,确保正确调用DLL中的函数,避免了手动编写繁琐的声明代码。 具体操作流程如下: 1. 使用VB编写包含所需函数的模块。 2. 使用LinkMakeDLL.exe或Link...

    VB6创建能作为输出函数的DLL

    在VB6中创建能作为输出函数的DLL是一个相对复杂但非常实用的技术,它涉及到VB6的编译机制和DLL的构建过程。VB6虽然默认情况下创建的DLL是COM组件,但通过特定的方法,我们可以实现创建标准DLL,使其能够提供API级别...

    vb6调用C#Dll函数

    3. 在VB6中创建一个对象,该对象将代表C# DLL中的接口。例如: ```vb Private cSharpDll As New CSharpDll.ICSharpDll ``` 4. 使用VB6对象调用C#方法: ```vb Dim result As Integer result = cSharpDll.Some...

    VB制作可输出函数的通用DLL---VB_DLL_Link用法.rar

    在VB(Visual Basic)编程环境中,创建一个可以输出函数的DLL(动态链接库)并不是默认支持的功能。然而,通过一些技巧和外部工具,我们可以实现这一目标。本教程将重点介绍如何利用VB创建一个通用的DLL,并导出其中...

    MakeDLLLink V1.0.6 使用VB6制作带函数输出的DLL

    使用 VB6 创建不用注册使用的带输出函数的动态链接库(DLL),并且带有函数的声明文件,改名后是VB的标准模块,直接引用,其使用方法与API相同。 感谢Web ID 马大哈的同类工具软件的启发。 如果发现Bug,请与我联系...

    VB制作可调用函数的DLL教程

    通DLL一样拥有输出函数呢?请使用本程序吧!它能让你ActiveDLL内的函数变 成对外公开的函数!这样,一个DLL就拥有“引用”与“声明”两种使用方法! 使用时请先将VB安装目录下原LINK.EXE改名为LINK2.EXE,再将本程序...

    vb.net创建GIF动画的DLL,C#创建GIF动画

    在VB.NET中创建GIF动画DLL,开发者通常会使用System.Drawing命名空间中的类,如Bitmap和Graphics,它们提供了绘制和操作图像的基本功能。开发者可能还需要使用第三方库,比如Gif.Components.dll,这是一个专门处理...

    VB生成导出函数的DLL-link源码-蓝夜精灵

    - 在VB代码中,你可以像调用本地函数一样调用DLL中的函数。 示例: ```vb Private Declare Function MyExportedFunction Lib "YourDLLName.dll" () Sub Main() Call MyExportedFunction End Sub ``` 5. ...

    给VB6的ActiveDLL添加输出函数的插件 1.0

    总的来说,这个VB6插件是一个针对ActiveDLL的增强工具,它扩展了VB6开发者的功能,允许他们在DLL中定义输出函数,从而更好地实现与调用程序的交互。通过安装和使用这个插件,开发者可以提升他们的DLL项目复杂性和...

    vb添加dll函数

    添加引用后,就可以在VB代码中像调用普通函数一样调用DLL中的函数了。在VB6中,使用`Call`关键字和`Declare`语句,如`Call MyFunction(arg1)`。在VB.NET中,直接使用函数名,如`MyFunction(arg1)`。 五、错误处理和...

    VB函数DLL生成器

    VB函数DLL生成器是一种工具,主要用于将Visual Basic (VB)编写的函数封装成动态链接库(DLL)文件。DLL文件是Windows操作系统中的一个重要组件,它允许多个程序共享同一段代码和数据,从而节省内存资源并提高系统效率...

    VB写DLL和调用dll实例

    2. 现在VB项目已经知道了DLL的存在,你可以像使用任何其他VB对象一样使用DLL中的函数。例如,如果你有一个名为`MyFunction`的函数,你可以这样调用它:`MyFunction 参数1, 参数2` 3. 请确保参数类型和DLL函数声明的...

    VB生成真正的dll,生成有导出函数的dll,link.exe下载

    VB制作有导出函数的DLL, 默认vb生成的dll没有输出函数, 原因是在连接时没有指明, 所以我们自己写一个程序替换原来的link.exe, 就是在连接时处理一下就可以了。 把下载的link.exe替换原来的link.exe

    C# 如何调用VB6.0编写的dll (1).doc

    在 VB6.0 编写的 DLL 中,我们定义了一个名为 `jia` 的函数,该函数接受三个整数参数 `a`、`b` 和 `c`,并返回一个布尔值。如果三个参数都满足某个条件,我们就返回 `True`,否则返回 `False`。 ```vb Public ...

    VB中调用VC++开发的DLL

    5. **调用DLL函数**:在VB的代码中,像调用普通VB函数一样调用DLL函数: ```vb Dim result As Integer result = Add(3, 5) MsgBox "Result: " & result ``` 6. **错误处理**:VB的错误处理机制与VC++不同,...

    VB生成标准DLL的方法,VB制作标准DLL

    然后,可以直接像调用本地函数一样调用DLL中的函数。 9. **readme.txt和@PSC_ReadMe_54190_1.txt**:这些可能是项目相关的说明文件,通常包含关于DLL使用、注意事项或版本信息的描述。 10. **错误处理**:在设计...

Global site tag (gtag.js) - Google Analytics