Re: Binary Compatibility and Property name case-sensitivity



"Gemma M" <gemmamakepiece@xxxxxxxxxxx> wrote in message
news:dagdcr$lie$1$8302bc10@xxxxxxxxxxxxxxxxxxx
> Dear All,
>
> I have a two COM components, C1 and C2. Each has binary compatibility and
> have had for a long time. C2 uses C1.
>
> However, when building on an XP machine C2 fails with the (unhelpful) "The
> binary compatibility DLL or EXE contains a parameter type or return type
> whose definition cannot be found". When building exactly the same
> components on a Windows 2000 machine, this error does not occur.
>
> C1 has never, according to VB6, lost binary compatibility.
>
> Examining versions of C1, and its hidden intefaces, I find that the case
> of a property name within a class within C1___V7 changed from StateId to
> StateID. In the very latest version, the StateID has been restored to
> StateId. When I create an instance of C1 in .NET, and then attempt to
> cast it to types of its hidden interface, I get an invalid cast exception
> when trying to cast it to C1___V7 :
>
> // -- C# code that throws the invalid exception code --
> Service.C1 c = new Service.C1();
> Service.C1___V6 c6 = (Service.C1___V6) c; // This works (StateId).
> Service.C1___V7 c7 = (Service.C1___V7) c; // This does not (StateId
> becomes StateID).
>
> QUESTIONS :
> Has anyone else encountered this problem?
> Can someone tell me, has case sensitivity been introduced into XP, when it
> comes to resolving binary compatibility for COM/VB6 components?
> Is there a Hotfix, or a service pack I can install/uninstall, and restore
> case-insensitivity for COM component property names?
>
> G

afaik, interface names were always case sensitive. fme, "whose definition
cannot be found" errors are raised when one or more dependencies are
missing, not registered, or broken themselves. I wouldn't know the first
thing about running VB6 stuff in .Net. For .Net questions, this isn't the
right group.

All .Net groups contain "dotnet" or "vsnet" in their names.
This and all other groups on the MS server that start with
"microsoft.public.vb" are for VB Classic (VB versions 1-6) and were in
existance long before any .Net products were released. While some of the
code looks the same, they are very different products and require a
different set of groups.

Try one of these:
news://microsoft.public.dotnet.general
news://microsoft.public.dotnet.languages.vb


--
Ken Halter - MS-MVP-VB - http://www.vbsight.com
DLL Hell problems? Try ComGuard - http://www.vbsight.com/ComGuard.htm
Please keep all discussions in the groups..


.


Loading