Re: regsvr32 error code 0x80004002
- From: "Alexander Grigoriev" <alegr@xxxxxxxxxxxxx>
- Date: Sun, 9 Dec 2007 19:56:57 -0800
Do _any_ of directories, registry info (like object description), etc,
contain non-ASCII characters? I'm afraid some of code (regsrv, or any DLL)
doesn't handle case when number of bytes in MBCS != number of UNICODE
USHORTs. There is also possibility of third-party software (certain global
hook DLLs) not supporting non-ASCII paths well.
"Norman Diamond" <ndiamond@xxxxxxxxxxxxxxxx> wrote in message
news:e76KsQtOIHA.4712@xxxxxxxxxxxxxxxxxxxxxxx
"SvenC" <SvenC@xxxxxxxxxxxxxxxx> wrote in message
news:C8F17C6A-B309-4E2C-852A-AA57DB569148@xxxxxxxxxxxxxxxx
Hi Norman.
Today regsvr32 gives error code 0x80004002, Interface Not Supported.
(Actual wording: $B%$%s%?!<%U%'!<%9$,%5%]!<%H$5$l$F$$$^$;$s(B)
That error code has the description "No such interface supported".
To see where it is generated you can debug you ATL dll by using regsvr32
as the debuggee.
Use menu Project properties->Config Props->Debugging
Enter the complete path to regsvr32 into the Command field.
c:\windows\system32\regsvr32
Enter the complete path to your ATL dll (debug version) into Command
Arguments.
Ugh. I didn't want to regsvr32 the debug version, I only wanted to
regsvr32 the release version. But OK, I'm trying it.
Oh this is really ugly, this is going to depend on debug versions of the
CRT. I really didn't want to regsvr32 a debug version. But OK, I'm
trying it.
"C:\censored+censored too+installer\censored tree\Debug\censored.dll"
(with quotes because of the spaces)
Put a Breakpoint in the DllRegisterServer function of your ATL dll
HRESULT hr = _AtlModule.DllRegisterServer();
and press F5.
I'm not sure if that will work. The project was built even though
registration failed. I don't need to start executing the C# client
executable project, I need to make VS2005 call the DLL's DllRegisterServer
function.
I thought of right-clicking the DLL project and selecting Rebuild. But
wait, this is the reason why you told me how to set the project's
debugging properties. OK, F5.
Well, the whole thing executed without breaking at the breakpoint.
Double-checking the properties of the C# client executable project, in the
Debug properties, the checkbox to enable debugging of managed code is
already checked.
(Actual text: $B%"%s%^%M!<%8(B $B%3!<%I(B $B%G%P%C%0$rM-8z$K$9$k(B(U))
And there's more. The whole thing executed without breaking at the
breakpoint, but just before that, the whole thing rebuilt. There's even
the error PRJ0050 that registration failed. This VS2005 error message
comes about because of the regsvr32 error. The usual response to PRJ0050
is that administrators have to run VS2005 as administrator. I am running
VS2005 SP1 as administrator, and this is on XP SP2 not on Vista. So
regsvr32 bombed out without even calling my DllRegisterServer function,
right?
Single step through the code and watch out which call does return
0x80004002.
You might find the problem yourself with this method otherwise please
post which function fails.
Still hoping to reach that point, if you know how to get there.
.
- Follow-Ups:
- Re: regsvr32 error code 0x80004002
- From: Norman Diamond
- Re: regsvr32 error code 0x80004002
- References:
- regsvr32 error code 0x80004002
- From: Norman Diamond
- Re: regsvr32 error code 0x80004002
- From: SvenC
- Re: regsvr32 error code 0x80004002
- From: Norman Diamond
- regsvr32 error code 0x80004002
- Prev by Date: RE: DDE problem under Terminal Server session
- Next by Date: Re: regsvr32 error code 0x80004002
- Previous by thread: Re: regsvr32 error code 0x80004002
- Next by thread: Re: regsvr32 error code 0x80004002
- Index(es):
Relevant Pages
|