由于我是初学者,看了上面有的问题之后有些还是不能明白,谢谢指教。。我这里有一个vb写的dll文件,我在C#中添加引用的时候提示我“未能添加对。。.dll的引用。请确保此文件可访问并且是一个有效的程序集或com组件”,然后我在com tab中找什么样的dll文件?并没有我所有的那个dll文件的名称,我把这个dll文件已经放到项目bin目录下了,注册也不能面功。这是为什么??/哪位知道的大哥哥指教一下,谢谢,,最好能给个例子看一下。

解决方案 »

  1.   

    需要注册才能在com中出现!regsvr32 *.dll
    放到bin下可以保证运行时通过。因为程序在运行时,会自动到bin下自动寻找所需的dll.
    http://douys.spaces.live.com/blog/cns!7956892DA269E6E9!250.entry
      

  2.   

    regsvr32 Mwrf32.dll时它会提示错误--loadlibrary("Mwrf32.dll")失败-找不到指定的模块--这又是怎么回来呀
      

  3.   

    VB6的控件都可以搞到vs.net里继续用的,只是有好些都是未授权的,比如说Rich Text Box Control6.0,好多都没有,在那个贴子里我搞的是Microsoft WinSock Control控件,就是mswinsck.ocx。按下面的步骤处理掉就成:1、复制mswinsck.ocx到c:\winnt\system32目录下,到.net的光盘里,在“Extras\VB6 Controls\”目录下复制vb6controls.reg文件到任意地方,因为我光盘里的这个文件有问题,我用的是下载的2、执行regsvr32 mswinsck.ocx注册3、执行regedit.exe进入注册表编辑器里,然后是菜单“文件”->“导入”,就选在第一步里,复制的那个vb6controls.reg文件,会弹出对话框告诉你说“vb6controls.reg里的信息已被成功地输入注册表”的4、在vs.net工具箱上右击,选“添加/移除选项卡(I)”,会弹出“自定义工具箱”对话框,点击“COM组件”,在“Microsoft WinSock Control,Version 6.0”那一列打上勾,确定后,就可以从工具箱里拿mswinsck.ocx用了在form里使用这个控件后,可以看到它被声明成:
    private AxMSWinsockLib.AxWinsock axWinsock1;
    在解决方案的引用里,也可以看到多了一个MSWinsockLib,估计是.net把这个vb6控件转换成的还有就是在编译后,会在bin\Debug目录下,生成AxInterop.MSWinsockLib.dll和Interop.MSWinsockLib.dll