2016-11-02 46 views
1

我在Windows 10 64位系統上註冊了一個使用RegSvr32的DLL。DLL已註冊但無法正常工作

我收到了RegSvr32後以下消息:

 --------------------------- 
    RegSvr32 
    --------------------------- 
    DllRegisterServer in myspecial.dll succeeded. 
    --------------------------- 
    OK 
    ---------------------------

當我試圖運行基本VBS文件執行以下操作:

Set obj = CreateObject("myspecial.clsmycode")

我收到以下消息嘗試後運行該VBS代碼:

 --------------------------- 
    Windows Script Host 
    --------------------------- 
    Script: C:\test.vbs 
    Line: 3 
    Char: 9 
    Error: ActiveX component can't create object: 'myspecial.clsmycode' 
    Code: 800A01AD 
    Source:  Microsoft VBScript runtime error 

    --------------------------- 
    OK 
    ---------------------------

有沒有人知道我做錯了什麼,或者我需要做些什麼才能使其工作?

+1

[已經回答這個](http://stackoverflow.com/a/35985827/692942)在很多細節之前。雖然問題在於經典ASP,但註冊任何COM dll時仍然如此。 – Lankymart

+1

最明顯的原因是您運行64位版本的腳本解釋器,但COM服務器是32位DLL。或者相反。請始終使用供應商提供的安裝程序btw,如果您沒有正確的安裝說明,請使用電話。 –

+0

@HansPassant並不總是有一個*「供應商」*,COM DLL已經不復存在,或者在某些情況下不會存在於內部...您可以通過遵循我提供的清單上面的答案*(請參閱「如何在Windows上註冊COM DLL」和「COM DLL覈對表」部分)*。瞭解Windows操作系統中32位/ 64位之間的體系結構差異,這一切都是不言而喻的。 – Lankymart

回答

1

解決辦法:

我的32位的DLL確實註冊我的64位Windows 10系統上,不過,我試圖在運行64位模式的腳本。另外,因爲我試圖在ASP中使用這個DLL,所以它不起作用,因爲沒有啓用32位應用程序。

的問題做解決了以下內容:

1)啓用IIS設置中的應用程序池內的32位應用程序。

2)運行該腳本在32位模式下使用這種方法:

A: How do I run a VBScript in 32-bit mode on a 64-bit machine?

+0

所以你錯過了我所說的部分*「在64位操作系統上,系統程序位於」*?如果你知道要從'%systemroot%\ SysWOW64'運行'cscript.exe'以在32位子系統中運行它。至少你找到了我想的解決方案。您也不會提及任何Web應用程序,那麼爲什麼您需要更改任何IIS應用程序池設置?例如,純粹涉及使用像Classic ASP這樣的COM的Web應用程序。 – Lankymart

+0

好的,在解釋該問題的答案中發現了ASP評論。 – Lankymart