PRB: Clireg32 Fails to Register the Type Library of DCOM Server (185193)
The information in this article applies to:
- Microsoft Visual Basic Learning Edition for Windows 5.0
- Microsoft Visual Basic Professional Edition for Windows 5.0
- Microsoft Visual Basic Enterprise Edition for Windows 5.0
This article was previously published under Q185193 SYMPTOMS
When using Clireg32.exe to register the type library (.tlb file) of a DCOM
server, the type library entries are not entered in the registry. This
problem also occurs during the Internet download of usercontrols that
reference DCOM servers. When this problem occurs, you will receive one of
the following error messages while trying to run the DCOM client
application:
The instruction at '0x00000000' referenced memory at '0x00000000'. The
memory could not be 'read'
An application error has occurred and an application error log is being
generated. '<Client.exe>' Exception: access violation (0xc0000005),
address: 0x00000000
CAUSE
The Clireg32.exe utility fails to register the type library when the DCOM
option is selected.
RESOLUTION
To resolve this issue, modify the DCOM Server .vbr file, and then use CliReg32.Exe to reregister the DCOM Server, first as a remote
automation component, then as a DCOM component, as detailed below.
Step-By-Step Procedure- Open the DCOM Server .vbr file in Notepad or any text editor.
- Both the ProxyStubClsid and ProxyStubClsid32 keys for the DCOM Server ClassId must modified. (In the sample below, the underscore character (_) is used as a line-continuation character; the line does not appear in this way in your .vbr file.)
Change the following
HKEY_CLASSES_ROOT\INTERFACE\{<Server ClsId>} _
\ProxyStubClsid\{00020420-0000-0000-c000-00000000046}
to the following:
HKEY_CLASSES_ROOT\INTERFACE\{<Server ClsId>} _
\ProxyStubClsid\{00020424-0000-0000-c000-00000000046}
Make the same change for ProxyStubClsid32. - On the Windows Start menu, click Run, and type the following command:
CLIREG32 DCOMSERVER.VBR -T DCOMSERVER.TLB -S SERVERMACHINENAME NOTE: In the above command, "DCOMSERVER" is the name of your DCOM
server, and "SERVERMACHINENAME" is the name of the server where the DCOM
component will reside. Choose Remote Automation from Remote Transport options. - Now, run the command again:
CLIREG32 DCOMSERVER.VBR -T DCOMSERVER.TLB -S SERVERMACHINENAME
This time, choose Distributed COM from Remote Transport options.
REFERENCESFor additional information, click the article numbers below
to view the articles in the Microsoft Knowledge Base:
161837 HOWTO: Create a DCOM Client/Server Application
168429 PRB: Component Download Fails for DCOM Projects
266717 HOWTO: Create a DCOM Client/Server Application by Using VB
267836 HOWTO: Create a DCOM Client/Server with Events by Using Visual Basic
268550 HOWTO: Use Dcomcnfg for a Visual Basic DCOM Client/Server Application
269330 HOWTO: Troubleshoot DCOM for Visual Basic Client/Server Applications
Modification Type: | Major | Last Reviewed: | 11/18/2003 |
---|
Keywords: | kbControl kbCtrl kbDCOM kbpending kbprb KB185193 |
---|
|