DLL已注册但不工作

DLL已注册但不工作,dll,vbscript,asp-classic,com,regsvr32,Dll,Vbscript,Asp Classic,Com,Regsvr32,我使用的是Windows 10 64位系统,我使用RegSvr32注册了一个dll 我在RegSvr32之后收到以下消息: --------------------------- RegSvr32 --------------------------- DllRegisterServer in myspecial.dll succeeded. --------------------------- OK -------------------

我使用的是Windows 10 64位系统,我使用RegSvr32注册了一个dll

我在RegSvr32之后收到以下消息:

--------------------------- RegSvr32 --------------------------- DllRegisterServer in myspecial.dll succeeded. --------------------------- OK --------------------------- 有人知道我做错了什么,或者我需要做什么才能让它正常工作吗?

解决方案:

我的32位DLL确实是在64位Windows 10系统上注册的,但是,我尝试在64位模式下运行脚本。另外,由于我试图在IIS上的ASP中使用此DLL,它无法工作,因为未启用32位应用程序

通过执行以下操作解决了此问题:

1) 在IIS设置中的应用程序池中启用32位应用程序

2) 使用以下方法以32位模式运行脚本:


之前有很多细节。虽然问题是针对经典ASP,但注册任何COM DLL时仍然适用。最明显的原因是您运行64位版本的脚本解释器,但COM服务器是32位DLL。或者反过来说。请始终使用供应商提供的安装程序。顺便说一句,如果您没有正确的安装说明,请使用电话。@HansPassant并不总是有“供应商”,COM dll非常旧,它们不再存在,或者在某些情况下是在内部编写的……您只需按照我在上面的回答中提供的清单来解决这个问题(请参阅“如何在Windows中注册COM DLL”和“COM DLL清单”部分)。这完全取决于了解Windows操作系统中32/64位之间的体系结构差异。因此,您错过了“系统程序所在的64位操作系统上”的部分?如果你读到,你知道从
%systemroot%\SysWOW64
运行
cscript.exe
在32位子系统中运行它。我想至少你找到了一个解决方案。你也没有引用任何Web应用程序,那么为什么你需要更改任何IIS应用程序池设置?这纯粹是使用类似COM的Classi的Web应用程序例如ASP。好的,在回答中发现了ASP注释,解释了这一点。 --------------------------- 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 ---------------------------