Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How is InstallShield registering Unicode DLLs on Windows 98 SE?

10 views
Skip to first unread message

dooth...@gmail.com

unread,
Aug 12, 2008, 12:16:50 PM8/12/08
to
I just made a little COM DLL, using VC6, copied it to a Windows 98 SE
machine, and tried regsvr32. It complained with error 0x800700ce,
which is "filename too long", or something like that, which didn't
seem to be a "real" explanation of the problem.

That was the DebugU version of the DLL. I changed to the
ReleaseUMinDependency version, and tried again. This time, it gave
0x80070078, which is "function not supported", which seemed more
meaningful. So, I used Dependency Walker, and cleaned up some things
that I thought might have caused this, but still got 0x80070078.

I then installed VC6 on the 98 SE machine in question, and compiled
directly there. Compilation went fine, but at the end, when it would
normally register the DLL, it said "Cannot register Unicode DLL on
Windows 95".

Now, the thing is, I'm already using a bunch of Unicode DLLs on that
machine, and have been for ages. Successfully. Without Unicows. I
just have explicitly avoided function calls to Unicode functions. And
it's not just that machine - there's code out there on multiple
customers' 98 SE machines, working fine.

At this point, I realized that I never actually used regsvr32 for
those earlier Unicode DLLs on that machine - rather, I had installed
via our InstallShield installer, which must have registered those
earlier DLLs itself.

To test this idea, I tried to use regsvr32 on one of the earlier DLLs
- i.e. one that has been working on that machine for ages - and indeed
got error 0x80070078.

I then built a little InstallShield installer for the new DLL - i.e.
the one that I originally noticed the problem with. It installed
everything perfectly fine, and the DLL works perfectly fine.

So:

(1) How is InstallShield doing this? I'm guessing that, instead of
using regsvr32 or some equivalent, it's manually figuring out what
registry entries have to be made, and manually making them?

(2) Am I doing anything dangerous here? Anything to worry about? Like
I said, after being installed with InstallShield, all of these DLLs
work fine, and have for ages, on multiple machines. And I'm careful
to not call any functions that have different Unicode and ANSI
implementations. But still, this seems... disturbing.

Thanks in advance for any help.

0 new messages