一个不小的项目主要是vb实现,现在需要增加网页解析部分功能,有现存的c#代码,不知道如何在工作量最小的情况下使用这些c#代码。
我尝试了方法:
1、把C#函数封装成dll,这样的话,用户安装软件 注册dll就是很费劲(不知道有没有简便方法进行注册dll);
2、C#函数作为一个独立的winform程序,这样和vb程序通讯又是个麻烦事。
3、把C#函数转换成vb函数,工作量不小,正则表达式修改是不是也挺麻烦呢?请专家支招!

解决方案 »

  1.   

    1.需要客户机器安装.NET Framework,不过可以导出到tlb
    2.可以用C#写一个WebService,在VB中调用
      

  2.   

    导出tlb测试是可以的,但是用户安装注册问题还没有解决?注册c#的dll似乎很麻烦。
      

  3.   

    1、把C#函数封装成dll,这样的话,用户安装软件 注册dll就是很费劲(不知道有没有简便方法进行注册dll);
    不麻烦,项目属性改为类库,选择生成com的那个选项(没开vs,不记得叫什么了)。在vb6调用即可,部署的时候和其他com一样,regsvr32 库.dll2、C#函数作为一个独立的winform程序,这样和vb程序通讯又是个麻烦事。
    也不麻烦,做成参数,每次调用是给一个字符串,返回一个结果。3、把C#函数转换成vb函数,工作量不小,正则表达式修改是不是也挺麻烦呢?
    这个比较麻烦,vb的正则是基于vbs那个com组建的,不支持命名分组,不支持正向断言,对正则的修改不大,但也要细心,如果多。修改也是个麻烦事。因为修改正则就要修改调用方法,原本用断言的,改用分组,代码不同了。基本算是重写了。结论,1,2比较靠谱。
      

  4.   

    http://setting.javaeye.com/blog/304600
    请问如何将第2步的“生成和注册类型库”,关键是2.3“添加dll到GAC”,gacutil 只有安装vs才可以使用的命令吧?谢谢!
      

  5.   

    to:wuyazhe 
    vb调用这个c#winform 如何能很方便传入一个字符串 返回一个字符串呢?实现思路是什么呢?
      

  6.   

    c#做成应用程序,在Program.Main方法中,处理Environment.GetArgument()得到调用的参数,vb中不是有Shell 程序,"参数"之类的方法么。返回值可以通过dos命令的管道获得。或是文件中转。
      

  7.   

    to:wuyazhe
    明白!个人觉得dll比较好点,没有解决用户安装时注册问题!“添加dll到GAC”,gacutil该命令只有安装vs后才有的吧,regsvr32似乎不可以注册c#的dll.多谢!
      

  8.   

    哼!与其在vb6中引用.net的dll,还不如把主程序写为.net的,然后引用vb6的项目的dll(com)。
      

  9.   


    要用regasm注册.net的程序集
      

  10.   

    to sp1234:
    vb form的界面很多,改起来工作量很大啊!c#在项目中的应用不是很多,但是需要。