首页 > 代码库 > C#.net中调用VB.net编写的dll示倒

C#.net中调用VB.net编写的dll示倒

经过网上查,发现两者的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
    {
    public partial class Form1 : Form
        {
        public Form1()
            {
            InitializeComponent();
            }

        Cls1 cc =new Cls1();
        private void button1_Click(object sender, EventArgs e)
            {
            double a1 = Convert.ToDouble(textBox2.Text);
            double a2 = Convert.ToDouble(textBox3.Text);
            double a=cc.plus(a1,a2);
            textBox1.Text =a.ToString ();
            }
        }
    }

运行,成功,如下图所示,数据输入后也OK。

技术分享

要点说明如下:

1)在编写VB类库时,用namespace包起来;

2)确认VB类库项目属性中的根命名空间,默认其与项目名称是一致,当然也可在项目属性中更改;

3)在C#编写时,先添加引用,然后使用using语句引入VB的dll文件的命名空间,此命名空间记得先写上根命名空间,即本例中的using vbTestDll.test1而非using test1

4)已经过测试,按上述步骤应用dll文件后,如果dll源代码内容有变化,重新生成后,到C#项目后直接启动调试即可接受此变化,无需重新引用。

C#.net中调用VB.net编写的dll示倒