regsvr32 error: the module was loaded but the entry point was not found

regsvr32 error: the module was loaded but the entry point was not found

这里的人使用旧编译的 VB 程序,最新版本是 16 年。它适用于某些机器但不适用于其他机器,所有机器都具有相同的 1709 版本和 Windows 10 的更新。

如果它不起作用,则会显示一条消息说 msdatlst.ocxmsdatgrd.ocx 未注册。然后,当我尝试使用 regsvr32 'MSDATGRD.OCX' 注册时,会出现一条消息 "the module was loaded but the entry-point was not found"。同样的命令在程序运行的机器上也是成功的

我确实在这里阅读了一些问题,但是 none 的答案帮我解决了。有什么想法吗?

感谢@Mark 的评论和其他所有人。问题确实是 regsvr32 执行的是什么版本。

在可以注册 ocx 的机器中,默认版本为 \windows\syswow64,而在无法注册的机器中,默认版本为 \windows\system32。然后我做了 运行 syswow64 一个,注册成功,程序现在可以运行了。

检查是否指定了.def文件,否则无法导出需要的DllRegisterServer函数