OLE controls in DLL's using vc4.2
Chris Masterton -- chris@digital-animations.co.uk
Wednesday, August 07, 1996
Environment: Win 95, VC++ 4.2
I shall be more specific about the problem we arehaving with the OLE =
control. The ole control does indeed live inside a dll which is set up =
as an ole container. The ole control is infact the Animated Button =
Control which came from the component gallery (we also tested this with =
other controls from the component gallery). We went further, we wrote a =
test application that called the canibutton control which worked =
perfectly. However we then wrote a test dll which suffered the same =
problem as we reported earlier. We have found a work around for this =
which involved dropping the ole control but its annoying not to know =
what exactly was causing the problem.
>When searching through the MFC sources, I can't find this error message =
anywhere.
It is the MFC that reports this error. "not registering ole control" =
wasnt the 'actual' text message produced in the debuggers output, =
apologies for misleading you on that. I am positive that it is the MFC =
that outputs this error though. I'll get the exact output to you as =
soon as I get a chance.
Its all been checked out only means that we've racked our brains at this =
side to try and find what the problem was, the only solution we could =
come up with was that there was a bug in 4.2. We may on the other hand =
have forgotten something something ridiculously simple, but I dont think =
so.
>If the DLL you are trying to register, can't find a dll or ocx it is =
looking for, it won't register. You might make sure all required dll's =
are in the path.
The dll and ocx are definetely in the right places.
>You say you installed 4.2 over 4.1. After doing so, what did you =
recompile:=20
>your application? your OLE control? both?
Yup, recompiled it and it didnt help much unfortunately. The same =
scenario (ole in a dll) was tested on a completely different machine and =
the same problem was occurring.
>on all machines?
On all machines.
Hope thats enough information for you.
Chris
Mike Blaszczak -- mikeblas@nwlink.com
Saturday, August 10, 1996
At 10:39 AM 8/7/96 +-100, you wrote:
> It is the MFC that reports this error.
Generally, MFC only reports these problems via a TRACE message. So, the
problem is happening to you under the debugger? Or is this problem happening
to you when you run REGSVR32 during the build of your control?
REGSVR32 isn't MFC -- but you do have the source code for it. Maybe you
should try making a debug build of REGSVR32, tracing through it, and
carefully watching what happens.
> "not registering ole control"
> wasnt the 'actual' text message produced in the debuggers output,
> apologies for misleading you on that. I am positive that it is
> the MFC that outputs this error though. I'll get the exact output
> to you as oon as I get a chance.
Until you get the exact error message, we really have little hope of helping
you. It would be great to see you post somethign that explains _when_
the error messgae comes up, too:
1) Drop to a DOS box
2) Run Duke Nukem 3D
3) Pause Duke
4) Switch to the tape backup program
5) Start a backup of drive D: to DAT
6) Open the "My computer" icon
7) Use it to Explore to C:\
8) Double click on AUTOEXEC.BAT
9) Observe the error message, in a message box with MB_ICONASTERISK, "Can
not register OLE control: error code 0x0000439". The messaeg box has the
title "Duke Nukem 3D OLE Control Manager"
Imagine how easy it would be to suggest solutions if you provided the exact
error message! We don't even know what program you're running to try to
register the control.
>>You say you installed 4.2 over 4.1. After doing so, what did you recompile:
>>your application? your OLE control? both?
>
>Yup, recompiled it and it didnt help much unfortunately.
>The same scenario (ole in a dll) was tested on a completely
>different machine and the same problem was occurring.
I don't understand your answer to John. John said "Did you recompile your
application, or your control, or Both?" and you said "Yes, we recompiled
it". Which is "it"?
>Hope thats enough information for you.
We're not trying to go out of our way to be jerks. We're going out of
our way to help you. It's _imperative_ that you provide enough information
to diagnose the problem. After exchanging this third message with you,
we're still wondering which error message you get and how you're trying
to register the control.
You've gone to the mechanic and said "my car won't start, fix it", and just
walked out. The mechanic actually managed to stop you,
and you said "Well, it's not that my car won't start,
exactly, but something's wrong with it. And it's my friend who told me
there was a problem, and he knows all about it, but he's not here."
What's the mechanic to do?
.B ekiM
http://www.nwlink.com/~mikeblas/
These words are my own. I do not speak on behalf of Microsoft.
| Вернуться в корень Архива
|