VBS调用c#编译dll
因为工作需要用到VBS调用dll,网上贴子看了不少,教程不全,成功率低,
于是我研究了几天,本教程亲测可用
1.新建c#类库,这个不多说了
代码如下
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace TestCom
{
[ComVisible(true)]
[Guid("6D7D9956-CB6B-4EF1-BFF2-2ABD0D04CA22")]
public interface iClass1
{
int test(int num1,int num2,string str);
}
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
//[ClassInterface(ClassInterfaceType.AutoDual)]
public class Class1 : iClass1
{
public string test1()
{
return "ok";
}
public int test(int num1, int num2,string str)
{
int result = 0;
switch(str)
{
case "x":
result = num1* num2;
break;
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "/":
result = num1 / num2;
break;
}
return result;
}
}
}
2.3.添加强名
选择开始菜单中Vistual Studio目录下的Vistual Studio Tools下的Vistual Studio 命令提示。使用sn -k c:\myKey.snk生成签名文件
3.在项目上右键,点击属性,选择签名,选中为程序集签名,选择myKey.snk文件
使程序集Com可见打勾
为Com互操作注册勾上
这就我之前一直不成功原因,不选或者默认Any CPU就会报这种错
最后生成dll文件,c#就完成了
VBS
试验一下
OK,成功了