从VB调用.Net类库(dll)

时间:2009-02-12 13:04:25

标签: vb.net com visual-studio-2005

我使用了一个教程(http://support.microsoft.com/kb/317535)来创建一个VB.NET类,它导出一个用于计算MD5校验和的COM可见方法。

问题是我需要从类似VB(Extra Basic)的语言调用这个.dll,它只支持COM调用。在我的机器上,一切都像魅力一样,但在目标服务器上它根本不起作用。我从“VB like”应用程序中得到“对象创建失败”。

根据教程,唯一需要做的就是使用regasm来注册.dll。这不起作用。当我注册.dll时,我显然犯了一些错误。

VS2005做了什么来使这个.dll在COM调用中可见?

我已经尝试过uese regsvr32,但它注册了.dll并注明以下消息:“xxx.dll已加载,但未找到DllRegisterServer入口点。此文件无法注册”

祝你好运 Ausgar

3 个答案:

答案 0 :(得分:4)

您无法使用Regsvr32.exe,需要Regasm.exe。您必须使用/ codebase命令行参数运行它,或者在GAC中安装程序集。我认为这是你的问题。

这些注册问题总是很难看,至少不是因为它们需要安装程序而不是Xcopy.exe。如果你没有正确版本,请调用DLL Hell。如果您不使用GAC,那么您将不会这样做。考虑使用包含< clrClass>的清单。元件。采取第一个谷歌点击。

答案 1 :(得分:0)

您是否尝试使用regsvr32注册COM DLL?我不知道regasm是否会自动执行此操作,但显然不会。{/ p>

答案 2 :(得分:0)

听起来您没有安装或在服务器上运行应用程序所需的所有项目。有些事情要看:

  1. 是否安装了.NET Framework?
  2. 确保COM正常工作。一些基本的尝试是:
    • 在写字板文档中插入对象。
    • 如果您可以运行WSCript,请运行一个创建对象的简单vbscript。
    • 在您的EXE上运行Dependency Walker并确保您拥有所需的一切。
  3. 如果以上内容无法帮助您,您可以使用Sysinternals ProcMon来查看您的应用程序正在访问的文件和注册表项(可能没有找到)。这应该可以为您提供有关正在发生的事情的线索。