在VS2017中使用C#创建和使用DLL

创建DLL

1、打开Visual Studio 2017,创建如下图的工程:

2、在类中定义接口类和接口实现类

输入以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Guid("710CA75B-1193-4BBF-ADA6-C92763616B85")]
public interface IDWGNoEnde
{
string Encode(string i_DWGNo);
string Decode(string i_DWGNo);
}
[Guid("F212F390-FB5C-4AF6-94CD-ED72B5ADEEC5")]
public class DWGNoEnDe : IDWGNoEnde
{
public string Encode(string i_DWGNo)
{
string o_EncodeDWGNo;
o_EncodeDWGNo = i_DWGNo + "_YPN";
return o_EncodeDWGNo;
}
public string Decode(string i_DWGNo)
{
string o_DecodeDWGNo;
o_DecodeDWGNo = i_DWGNo.Substring(0, i_DWGNo.Length - 4);
return o_DecodeDWGNo;
}
}

其中,GUID通过点击VS工具》创建GUID,复制得到

3、右键项目》属性》应用程序》程序集信息,勾选使程序集COM可见

4、右键项目》属性》生成,勾选为COM互操作注册

5、打开VS2017的开发人员命令提示符,输入sn -k c:\myKey.snk,生成密钥文件

6、右键项目》属性》签名》选择强名称密钥文件,点击浏览,选择刚刚生成的snk文件

7、点击生成》重新生成解决方案,生成DLL

使用DLL

VB调用

1、生成tlb文件

一般VS生成dll的同时,会自动生成tlb文件。如果VB和VS在同一台机器,则直接用该tlb即可,如果不是同一台机器,则需要将dll拷贝到VS所在机器上重新生成tlb文件。

在vb所在机器上,以管理员身份打开cmd,进入.netFramework所在目录C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>,执行以下命令生成tlb文件:

regasm F:\TestC#DLL\DWGNoEnDe.dll /tlb:DWGNoEnde.tlb /codebase

2、打开VB工程,引用tlb文件
点击浏览,选择刚刚生成的tlb文件,确定即可。

3、在代码中定义和使用DLL

1
2
3
4
Dim v_dwgnoEnde As New DWGNoEnDe.DWGNoEnDe
Private Sub Command1_Click()
Text2.Text = v_dwgnoEnde.Encode(Text1.Text)
End Sub