c#中如何调用vb写的dll文件?急!急!

碎玻璃渣子 2008-05-11 03:10:48
由于我是初学者,看了上面有的问题之后有些还是不能明白,谢谢指教。。

我这里有一个vb写的dll文件,我在C#中添加引用的时候提示我“未能添加对。。.dll的引用。请确保此文件可访问并且是一个有效的程序集或com组件”,然后我在com tab中找什么样的dll文件?并没有我所有的那个dll文件的名称,我把这个dll文件已经放到项目bin目录下了,注册也不能面功。这是为什么??/

哪位知道的大哥哥指教一下,谢谢,,最好能给个例子看一下。。。。
...全文
643 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
maiguang33 2008-05-11
  • 打赏
  • 举报
回复
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

碎玻璃渣子 2008-05-11
  • 打赏
  • 举报
回复
regsvr32 Mwrf32.dll时它会提示错误--loadlibrary("Mwrf32.dll")失败-找不到指定的模块--这又是怎么回来呀
sendy_dou 2008-05-11
  • 打赏
  • 举报
回复
需要注册才能在com中出现!regsvr32 *.dll
放到bin下可以保证运行时通过。因为程序在运行时,会自动到bin下自动寻找所需的dll.
http://douys.spaces.live.com/blog/cns!7956892DA269E6E9!250.entry

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧