队
以下代码在尝试调用dll组件时,在我的经典ASP页面中将空/ null返回到myobj。
Set myobj = Server.CreateObject("MODULENAME.cCLASSNAME")
这与DLL放在\ Bin下的这个asp页面有关。 DLL是由前同事定制开发的Interop COM dll,目前无法访问代码。
DLL组件出现在HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \下的regEdit中,这使我认为它已注册。但是,当我尝试使用regsvr32重新注册时,它显示它已加载但无法找到DLLRegisterServer方法。我使用regAsm来注册组件。
可以在这里完成任何替代方法吗?我错过了什么吗?
答案 0 :(得分:0)
如果文件名以" Interop"开头。或者" AxInterop",它可能是COM DLL的包装器,而不是它自己的DLL。必须在系统上注册COM DLL,然后dotNet应用程序将使用/创建该包装器,以便您可以对其进行调用。
您需要做的是找到DLL,而不是Interop,因为您没有在Classic ASP中使用dotNet。确保它已在该计算机上注册(使用regsvr32,没有错误),然后这应该可以。
最后的注释/提示,由前同事创建的dll是用C或VB(不是dotNet)完成的吗?如果在dotNet中完成,它不是COM,你需要研究"如何从非托管代码调用托管DLL"。