找不到 DllRegisterServer 入口点

Posted

技术标签:

【中文标题】找不到 DllRegisterServer 入口点【英文标题】:DllRegisterServer entry point was not found 【发布时间】:2009-11-09 20:26:22 【问题描述】:

在运行我的 vb6 应用程序时,我遇到了类似的错误,

运行时错误“53”:找不到文件:rscomclNoMsg.dll

然后我尝试使用 regsvr32 从 cmd 行注册该 dll。然后我收到类似

的错误

我将 rscomclNoMsg.dl 复制到 c:\windows\system32 和 C:\Program Files\Microsoft Visual Studio\VB98

谁能为我提供解决方案?

【问题讨论】:

【参考方案1】:

Dependency Walker 可能会成为你的朋友。您可以在 rscomclNoMsg.dll 上运行它,以了解它是什么类型的 DLL,以及它具有哪些依赖项。

【讨论】:

【参考方案2】:

“未找到 DllRegisterServer 入口点”表示它不是 COM DLL。

" runtime error '53': file not found: rscomclNoMsg.dll" 表示 VB6 在它的任何搜索路径中都没有找到 DLL。它应该放在 System32 或应用程序目录中。由于您已经尝试过 System32,我会尝试将其移至应用程序所在的任何位置。如果您从 IDE 运行它,那么它必须是具有 DECLARE 语句的 EXE 或 DLL。

对于 Win32 DLL,您需要有关可用函数的文档,然后使用 DECLARE 使它们可见。作为声明语句的一部分,您告诉它要使用什么 DLL。这个MSDN article 解释了发生了什么。

用 .NET 编写的 DLL 必须通过 COM 公开,以便它们对 VB6 可见。

如果您有良好的源代码,您可以查看各种项目并找出 rscomclNoMsg 的声明位置。希望这会告诉您放置 dll 的位置。

更多细节将有助于完善我的答案。

【讨论】:

【参考方案3】:

什么是rccomclNoMsg.dll?它是 COM DLL 还是 .NET DLL?如果 DLL 是用 .NET 编写的,您(或编写 DLL 的人)将不得不采取一些步骤使其 COM 可见。

这可能会对您有所帮助:Steps to make your .Net DLL useable from VB6

【讨论】:

如何找到特定的dll是com dll还是.net dll?我从来没有工作过vb6。谢谢 您的意思是DLL 从未在VB6 中工作过,还是您自己从未在VB6 中编写过任何东西?除了尝试将 DLL 导入 VB6 之外,VB6 中只能使用 COM 可见 DLL。

以上是关于找不到 DllRegisterServer 入口点的主要内容,如果未能解决你的问题,请参考以下文章

解决方案windows win7 双击图片,不能通过照片查看器打开,有错误 “模块shimgvw.dll已加载,但找不到入口点DllRegisterServer ”

模块qtcore.dll已经加载,但找不到入口点怎么解决

模块“srmlib.dll”已加载,但未找到入口点 DllRegisterServer

httpd 加载 xDebug 失败:找不到过程入口点

找不到 DLL 入口点

安装blueprism提示bcrypt.dll无法定位程序输入点,请问怎么解决?