VB调用C# DLL:实现步骤与方法
4星 · 超过85%的资源 需积分: 10 179 浏览量
更新于2024-09-15
收藏 228KB PDF 举报
本文档主要介绍了如何在VB(Visual Basic)环境中调用C#(C Sharp)编写的.NET平台上的DLL(动态链接库)。尽管C#编写的.NET DLL通常是面向.NET框架设计的,不能直接被非.NET语言如VB或VC等调用,但可以通过COM(Component Object Model)技术间接实现跨语言调用。
首先,创建一个名为TestCom的C#项目,该项目包含一个接口iClass1和一个实现了该接口的Class1类,同时使用[ComVisible]属性标记它们为COM可见,以便于被其他语言识别。Class1类中的test方法返回字符串"ok"。为了保证程序的安全性和完整性,生成签名文件myKey.snk,并在项目属性中设置为程序集签名。
1.1 静态编译C# DLL
在Visual Studio的命令提示符下,新建并编译项目,生成的TestCom.dll文件存放在\Debug目录下,完成了C# DLL的编写。
接下来,要将C#的.NET DLL转换为COM兼容的形式,以便VB等非.NET语言能调用:
2.1 生成TLB类型库
使用tlbexp工具,将C# DLL导出为类型库(TLB),命令行输入`tlbexp TestCom.dll /out:TestCom.tlb`,这会生成一个TestCom.tlb文件,其中包含了DLL的COM接口描述。
2.2 注册类型库
使用regasm工具,注册刚才生成的TLB文件,命令行输入`regasm TestCom.dll /tlb:TestCom.tlb /codebase`。这一步骤使TestCom.tlb成为系统注册的COM类型库,使得VB等语言能够识别并引用。
现在,VB程序可以通过以下步骤调用C# DLL:
- 在VB中声明对TestCom.tlb的引用,让编译器知道有可用的COM接口。
- 使用CreateObject或早期版本的CreateTypeObject函数,通过TestCom.tlb提供的接口实例化Class1对象。
- 调用Class1对象的方法,如`Dim c As New TestCom.Class1()`, `Dim result As String = c.test()`。
总结来说,本文介绍了如何通过.NET平台的COM技术,让VB能够调用C#编写的DLL,确保了不同.NET语言之间的交互性。这种技术对于需要跨语言集成的开发者来说非常实用,可以大大提高开发效率和代码重用性。
2010-10-11 上传
2013-12-10 上传
点击了解资源详情
2013-12-23 上传
184 浏览量
2021-10-12 上传
dafeng520
- 粉丝: 1
- 资源: 9
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍