将VB6引用注册到EXE

时间:2016-03-21 12:00:08

标签: vb6 registry

所以我的场景是旧服务器需要退休,但其上的混合平台Web解决方案需要移植到新的Windows 2012R2服务器。我的背景并没有包含很多相关技术方面的经验,所以我很难和几年前没有任何文档的所有开发人员一起努力,如果不是更多的话。

经典的ASP网站引用了一个我们称之为IBase.dll的内部DLL。我使用regsvr32来注册这个,并将一个产生的错误转移到另一个错误,我将其归结为IBase.dll需要它自己的引用注册。

InternetBase error '800a01ad' 

ActiveX component can't create object 

/Secure/CaseDetails.asp, line 333

我设法找到了用VB6编写的IBase.dll项目文件的一个版本。当我进入Project> References时,它有一些内部.exes的条目。现在当我尝试在新服务器上调用这些服务器时(来自syswow64,虽然我都试过了)但是我收到了一个错误:

The module "D:\ibase\ibasehelper4.exe" was loaded but the entry-point DLLRegisterServer was not found.

Make sure that "D:\ibase\ibasehelper4.exe" is a valid DLL or OCX file and then try again.

在旧服务器上,我可以看到似乎有助于DLL找到这些EXE引用的注册表项。我怎样才能正确地尝试注册这些EXE以使它们可用于IBase.dll?或者甚至,我可以尝试一些什么东西?

2 个答案:

答案 0 :(得分:3)

自从我上次使用它以来已经有一段时间了,但COM对象有两种形式:进程内和进程外。

DLL(和OCX,它们只是用于大多数目的的奇特DLL)在与调用代码相同的过程中运行,除非您使用DCOM并在另一台机器上运行,以及其他憎恶。

COM EXE处于进程外,其中涉及所有相应的编组和进程间通信开销。

正如Marc指出的那样,您需要使用/ regserver标志调用EXE以获取相关的注册表项。它与RegSvr32对DLL的作用相同。

*故意滥用过去时态。我确信一些可怜的不幸者现在还在创造新的。

答案 1 :(得分:0)

如前所述,要注册EXE,请使用/ regserver选项运行EXE。 http://www.vb-helper.com/tip_register_unregister_activex_exe.html

相关问题