2009-02-12 81 views
2

我已經使用教程(http://support.microsoft.com/kb/317535)創建了一個VB.NET類,該類導出了用於計算MD5校驗和的COM可見方法。VB調用.NET類庫(dll)

問題是我需要從類似VB(Extra Basic)的語言中調用這個.dll,它只支持COM調用。在我的機器上,一切都像魅力一樣,但在目標服務器上它根本不起作用。我從「VB like」應用程序中獲得「對象創建失敗」。

根據教程,唯一需要做的就是使用regasm註冊.dll。這不起作用。當我註冊.dll時,我顯然做錯了。

VS2005做什麼使這個.dll COM調用可見?

我試圖uese REGSVR32,但zhcon失敗註冊以下消息將.dll:「xxx.dll加載,但中的DllRegisterServer入口點未找到此文件無法註冊。」

致以問候 Ausgar

回答

4

您不能使用Regsvr32.exe,Regasm.exe是必需的。您必須使用/ codebase命令行參數運行它,或者在GAC中安裝程序集。我認爲這是你的問題。

這些類型的註冊問題總是很難做到,因爲它們需要安裝程序而不是Xcopy.exe。如果版本不正確,請調用DLL Hell。如果您不使用GAC,您不會這麼做。考慮使用包含<clrClass>元素的清單。採取第一次谷歌命中。

0

您是否試過使用regsvr32註冊COM DLL?我不知道regasm是否會自動執行此操作,但顯然不會。

+0

HI, 是的我試過使用regsvr32。我收到以下錯誤消息:「已加載xxx.dll,但沒有找到DllRegisterServer入口點。該文件無法註冊」 – Ausgar 2009-02-12 13:21:04

+0

Ouch。 :-(不幸的是,我從來沒有用.NET中創建的COM dll工作 – 2009-02-12 13:31:02

0

聽起來好像您沒有應用程序需要安裝或正在服務器上運行的所有項目。有些事情要看:

  1. 是否安裝了.NET Framework?
  2. 確保COM正常工作。一些基本的嘗試是:
    • 在寫字板文檔中插入一個對象。
    • 如果你可以運行WSCript,運行一個簡單的vbscript來創建一個對象。
    • 在您的EXE上運行Dependency Walker並確保您擁有您需要的一切。
  3. 如果上面沒有讓你去,你可以使用Sysinternals ProcMon看你的應用程序正在訪問哪些文件和註冊表項(也許沒有找到)。這應該爲您提供有關正在發生的事情的線索。