经过网上查,发现两者的dll应该能共用的,就试了一下,好一会儿才成功,不多说,直接上示例。IDE为vs2008。
VB.net中编写类库,设置项目名称(同时默认为解决方案名称)后开始编写,代码如下:
Namespace test1 Public Class Cls1 Public Function plus(ByVal a As Double, ByVal b As Double) As Double plus = a + b * 2 End Function End Class End Namespace |
之后发布,发布之前记得在项目属性中确认一下根命名空间,如下图,发布后形成dll文件。
之后,新建C#的项目,windows应用程序,添加引用,如下图所示,然后写代码。
代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using vbTestDll.test1; namespace cccc_use_vb_dll Cls1 cc =new Cls1(); |
运行,成功,如下图所示,数据输入后也OK。
要点说明如下:
1)在编写VB类库时,用namespace包起来;
2)确认VB类库项目属性中的根命名空间,默认其与项目名称是一致,当然也可在项目属性中更改;
3)在C#编写时,先添加引用,然后使用using语句引入VB的dll文件的命名空间,此命名空间记得先写上根命名空间,即本例中的using vbTestDll.test1而非using test1;
4)已经过测试,按上述步骤应用dll文件后,如果dll源代码内容有变化,重新生成后,到C#项目后直接启动调试即可接受此变化,无需重新引用。