本文以C#为例,自己实践了一下。希望对遇到相关问题的人有所帮助。
本示例分成两部分,第一,生成vb的dll。第二,在C#中进行调用。
第一部分:
1.首先在VB中选择ACTIVX DLL工程类型。如图:
2.然后修改工程名,class文件名,添加2个函数,如下图:
方便copy,代码如下:
Public Function FncTestDLLForDotNet(instr As String) As Integer
FncTestDLLForDotNet = 9
End Function
Public Function FncTestDLLForDotNet2(instr As String) As Integer
FncTestDLLForDotNet2 = 99
End Function
3.然后从文件菜单中选择生成TestDLLProject1.dll,即可生成DLL。
下面为第二部分:
1.打开vs2005,选用语言c#,工程类型为一个window application即可。
在form上添加一个按钮。如下图:
我加的: 把TestDLLProject1.dll拷贝到System32文件夹下
2.在解决方案资源管理器中,右键点引用,在弹出的对话框中选择浏览,找到System32里的TestDLLProject1.dll,选中它,点确定。即可加入到引用中。如下图:
添加完后,会看到在引用中已经增加了对这个dll的引用,如图:
3,最后一步了编写按钮的代码,来调用这个vb的dll中的方法。
双击form上的button,在button的click事件中加入如下代码:
TestDLLProject1.TestClass1 tc = new TestDLLProject1.TestClass1();
string ss = "kkkk";
int i = tc.FncTestDLLForDotNet(ref ss);
int i2 = tc.FncTestDLLForDotNet2(ref ss);
MessageBox.Show(i.ToString() + " " + i2.ToString());
好,按ctrl+shift+b,编译工程,再按f5运行,点击按钮,如下图,成功弹出结果。
如图:
如果要移植到其他计算机上,需要把TestDLLProject1.dll复制到该机的System32文件夹下,并在“运行”中使用regsvr32 TestDLLProject1.dll这条命令来注册该组件(可能有的组件不需要注册吧),才能成功移植到其他计算机。否则会报错“检索COM类工厂中CLSID为{ 一串字符 } 的组件时失败,原因是出现以下错误:80040154”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
2006-04-15 积极的生活着
2005-04-15 今天去了中山