QINMS.com || 首页 ||
网上有篇文章(http://wenku.baidu.com/view/fae4b5bf6bec0975f465e2d4.html)详细写了VB6.0调用C#.NET(VS2010)DLL的实现方法,在这里我用表示VS2012中的VB.NET重演了一下,基本算是实现了。
来一个简单的例子(主要说和C#不一样的地方):
用VS2012中的vb建立一个类库,在CLASS1中输入一下代码:
其中里面的GUID由工具---创建GUID生成,使用的是第6种格式:
同样,需要对项目属性里边的一些值进行设置:
勾选使程序集COM可见(M):
勾选属性--编译中的为COM互操作注册(E):
然后依次打开"开始"菜单里的如下路径:
MicrosoftVisualStudio2012->VisualStudioTools->VS2012开发人员命令提示
最好是右键---以管理员身份运行。
之后的步骤就是用提示符生成snk文件等,就和原来的文章描述是一致的了,可按照原来的进行即可。
最后用VB6生成程序,调用这个生成的tlb文件,成功调用里边的函数
由于这个例子的这个函数比较简单,Function aaa(ByVal a As Integer) As Integer,后来我生成一个比较复杂的,Function scs(ByVal a() As Double, ByVal b() As Double) As Double()导入两个double类型的数组,最后的结果是一个double类型的数组,却出现了警示“函数或接口标记为限制的,或函数使用了VB中不支持的自动类型。”对于我这种外行人来说,相当困惑。