2012-07-11 51 views
0

我想從VB腳本代碼調用C#函數,我得到「Activex組件不能創建對象」錯誤。獲取「Activex組件無法創建對象」

我做了以下工作。

  1. 類創建庫的ProgID,並標記有ComVisible特性真強命名
  2. 註冊使用RegAsm.exe /代碼庫DllPath的(DLL註冊成功,我能看到,在登記處)
  3. 創建對象的DLL使用VB腳本代碼並調用C#函數如下。
Option Explicit 
Dim testwfhandler 
Set testwfhandler= CreateObject("CoreComponentWorkflow.WorkflowHandler") 
If Not testwfhandler Is Nothing Then 
    Call testwfhandler.test() 
End If 
Set testwfhandler= Nothing 

是從安裝在我的服務器將第三方應用程序(外表套上工作流程)執行這個VB腳本。

不知道爲什麼會出現上述錯誤,當我直接從服務器執行相同的代碼時,它工作正常。

test()這個函數只會創建一個日誌文件並在其中添加一些文本。

+0

有兩個版本的regasm.exe,一個32位和一個64位版本。在64位操作系統上的問題,選擇正確的。或兩者。 – 2012-07-11 10:37:40

+0

我在C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319中使用regasm.exe這個位置 – user1428019 2012-07-11 10:51:33

+0

另一個是C:\ Windows \ Microsoft.NET \ Framework目錄,它是32位版本.NET – 2012-07-11 10:54:49

回答

2

答案已經通過發表了,但我想它 有意義的聲訊真正的答案,以便其他人可以很容易地找到它 回來。

根據您的VBScript如何加載/執行,您應該使用RegAsm.exe的32位或64位版本註冊您的DLL。

在64位的操作系統,你會發現在regasm的32位版本,C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

和64位regasm的版本應該是, C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe

如果你想運行在64位機器上自己以32位模式運行VBScript請參閱How do I run a VBScript in 32-bit mode on a 64-bit machine?

相關問題