Re: COM component DLL producing different *.IDL file on different PCs.
- From: "Gemma M" <gemmamakepiece@xxxxxxxxxxx>
- Date: Fri, 2 Dec 2005 19:21:50 -0000
Hi,
The file is physically the same file, copied from one machine to the other.
I realise that producing IDL output using OLE/COM Viewer doesn't change the
DLL. What perplexes me most is that the output from OLE/COM Viewer (and the
IDL export mechanism of VC++) reports differently for the same physical
file, which points to an environment difference on the machines. And it
seems to me that whatever is causing this difference is causing the
difference in behaviour w.r.t. binary compatibility.
I agree that if the DLLs were built on different machines, then it would be
whole different ball game.
Thanks
Gem
"Tony Proctor" <tony_proctor@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:e7EOtE39FHA.2936@xxxxxxxxxxxxxxxxxxxxxxx
> I'm still a little confused Gem. Is your DLL physically copied between the
> 2
> machines (i.e. it really is the same file), or is it rebuilt with binary
> compatibility on each of the 2 machines?
>
> I ask because although you do say "the file has not changed", you also
> talk
> about the DLL apparently being adulterated by something, and so breaking
> binary compatibility. The IDL viewer doesn't change the DLL though. Also,
> a
> difference in the IDL output doesn't necessarily indicate a difference in
> the DLL. The case of the stdole filename, for instance, depends on how it
> was recorded in the 2 registries, not on some difference in the DLL. The
> GUID for stdole.tlb will be the same.
>
> If, on the other hand, the DLL is built on both machines then it gets a
> bit
> more complicated. Binary compatibility only ensures the GUIDs are all the
> same. We're currently investigating a problem ourselves where the exact
> same
> project, built with exactly the same release of VB6, but on 2 different
> machines, behaves very differently when installed on the same target
> machine. One won't even register whilst the other is fine. This seems to
> be
> a difference in the way one particular typedef is handled, and is pointing
> the finger at a difference in OLE32.DLL on the 2 machines.
>
> Tony Proctor
>
> "Gemma M" <gemmamakepiece@xxxxxxxxxxx> wrote in message
> news:dmq0sv$ae4$1$8302bc10@xxxxxxxxxxxxxxxxxxx
>> Thanks for your contribution.
>>
>> The file in question HAS NOT CHANGED. It is built in VB using VB Binary
>> Compatible rules. However, it produces different IDL output in COM/OLE
>> viewer on different machines (namely the CUSTOM attribute on the library
> and
>> the case of the reference to stdole2.tlb/STDOLE2.TLB). The anomaly in
>> the
>> IDL output from COM/OLE Viewer is a symptom of the problem. On the
> machine
>> with the corruption, the COM component appears to be compatible, but on
> the
>> machines without the corruption, compatibility is broken in certain
>> circumstances. All DLLs are exactly the same files in this compatibility
>
>> chain, only the machines on which they run are different. The Binary
>> compatibility fracture is another symptom.
>>
>> Note, that neither the GUID in the custom attribute, or the value 9782
>> associated therewith, appear anywhere in my registry.
>>
>> I also assume it is a registry corruption on the one machine that behaves
>> differently from all the others. What I am trying to solicit with my
>> posting is how I am to discover what this corruption is. I am at the
> point
>> where I am considering re-building the machine in question (a drastic
> step -
>> hence my need to discover the problem, to prevent it occurring again).
>>
>> No description of the rules of Binary Compatibility ever touch on the
>> fractures caused thereto by corruption in registry entries, corruptions
> that
>> RegClean (and others of its ilk, do not fix).
>>
>> Regards
>> Gem
>>
>> "Ken Halter" <Ken_Halter@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
>> news:uh$0CS29FHA.1288@xxxxxxxxxxxxxxxxxxxxxxx
>> > "Gemma M" <gemmamakepiece@xxxxxxxxxxx> wrote in message
>> > news:dmpt03$dup$1$8300dec7@xxxxxxxxxxxxxxxxxxx
>> >> Sorry, slight error. The custom(guid, 9782) is applied to the library
>> >> itself, not the helpcontext. But, whatever it is, and wherever it
> comes
>> >> from, it is corrupting the cursed BINARY COMPATIBILITY (over which I
> have
>> >> no control, thanks to VB).
>> >>
>> >> Gem
>> >
>> > fwiw, I've never messed with IDL (or the OLE/COM Object Viewer) so I
> have
>> > no clue what may be causing the problem. Binary Compatibility though,
>> > is
>> > no great mystery. Either the component's broken, or it's not. As long
>> > as
>> > the compatibility model contains all publics, the DLL should be
>> > compatible. If the model is missing a procedure, property, anything
>> > Public, each time you compile, VB's generating new IIDs for that
>> > interface. So, that component is broken. It just doesn't know it yet.
>> > It'll work fine until the next compile. That's when things get
> interesting
>> > for clients that need the component.
>> >
>> > Since there's no rebuild between the steps you're talking about, Binary
>> > Compatibility wouldn't be the problem. Maybe there's some registry
>> > corruption going on somewhere.
>> >
>> > INFO: Registry Entries Made by an ActiveX Component
>> > http://support.microsoft.com/default.aspx?scid=kb;en-us;183771
>> >
>> > --
>> > Ken Halter - MS-MVP-VB - Please keep all discussions in the groups..
>> > DLL Hell problems? Try ComGuard - http://www.vbsight.com/ComGuard.htm
>> > Freeware 4 color Gradient Frame?
>> > http://www.vbsight.com/GradFrameCTL.htm
>> >
>>
>>
>
>
.
- References:
- COM component DLL producing different *.IDL file on different PCs.
- From: Gemma M
- Re: COM component DLL producing different *.IDL file on different PCs.
- From: Gemma M
- Re: COM component DLL producing different *.IDL file on different PCs.
- From: Ken Halter
- Re: COM component DLL producing different *.IDL file on different PCs.
- From: Gemma M
- Re: COM component DLL producing different *.IDL file on different PCs.
- From: Tony Proctor
- COM component DLL producing different *.IDL file on different PCs.
- Prev by Date: Re: COM component DLL producing different *.IDL file on different PCs.
- Next by Date: Re: COM component DLL producing different *.IDL file on different PCs.
- Previous by thread: Re: COM component DLL producing different *.IDL file on different PCs.
- Next by thread: Re: COM component DLL producing different *.IDL file on different PCs.
- Index(es):
Relevant Pages
|
Loading