Home All Groups Group Topic Archive Search About

Binary Compatibility - Please help!

Author
30 Jan 2006 4:47 PM
Mwob
I have a confusing problem with VB binary compatibility that I am
unsure how to solve. Here's the scenario:

I have a ActiveX class library (DLL) called DLLproject1, that contains
amongst other things a class - called for the sake of simplicity
"PropertiesClass". I have another ActiveX class library
(DLLProject2) that contains a reference to DLLproject1 and contains a
class that exposes an instance of the PropertiesClass as a property -
like this:

Public Property Get PropClass() As DLLproject1.PropertiesClass
    ....
End Property

Both these classes use binary compatibility. If I need to change
something in DLLproject1 that breaks binary compatibility, then I go
ahead and do this. But when I go back to DLLproject2 and try to build,
I get the error "The binary compatibility DLL or EXE contains a
parameter type or return type whose definition can not be found".

I understand why it is telling me this, its because I broke binary
compatibility in the referenced DLL. But I need to tell it to build
anyway. The only way I can get round this is to turn binary
compatibility off for DLLProject2, build, and then turn it back on
again and build again. This takes ages and its a real pain in
development when the interface for DLLproject1 might change quite
often.

Is there something I can do? Please help, I am pulling my hair out with
this problem.

Matt Roberts

Author
30 Jan 2006 5:38 PM
Harvey Triana
Once I had that problem.
I solve it to compile both dlls.
(The type library has to be refreshed...)

--
<Harvey Triana />
---------------------
I signed the petition at:
http://classicvb.org/petition/index.asp


Show quoteHide quote
"Mwob" <mattwobe***@gmail.com> escribió en el mensaje
news:1138639671.252249.66610@f14g2000cwb.googlegroups.com...
>I have a confusing problem with VB binary compatibility that I am
> unsure how to solve. Here's the scenario:
>
> I have a ActiveX class library (DLL) called DLLproject1, that contains
> amongst other things a class - called for the sake of simplicity
> "PropertiesClass". I have another ActiveX class library
> (DLLProject2) that contains a reference to DLLproject1 and contains a
> class that exposes an instance of the PropertiesClass as a property -
> like this:
>
> Public Property Get PropClass() As DLLproject1.PropertiesClass
> ....
> End Property
>
> Both these classes use binary compatibility. If I need to change
> something in DLLproject1 that breaks binary compatibility, then I go
> ahead and do this. But when I go back to DLLproject2 and try to build,
> I get the error "The binary compatibility DLL or EXE contains a
> parameter type or return type whose definition can not be found".
>
> I understand why it is telling me this, its because I broke binary
> compatibility in the referenced DLL. But I need to tell it to build
> anyway. The only way I can get round this is to turn binary
> compatibility off for DLLProject2, build, and then turn it back on
> again and build again. This takes ages and its a real pain in
> development when the interface for DLLproject1 might change quite
> often.
>
> Is there something I can do? Please help, I am pulling my hair out with
> this problem.
>
> Matt Roberts
>
Author
30 Jan 2006 9:46 PM
Harry Strybos
Show quote Hide quote
"Mwob" <mattwobe***@gmail.com> wrote in message
news:1138639671.252249.66610@f14g2000cwb.googlegroups.com...
>I have a confusing problem with VB binary compatibility that I am
> unsure how to solve. Here's the scenario:
>
> I have a ActiveX class library (DLL) called DLLproject1, that contains
> amongst other things a class - called for the sake of simplicity
> "PropertiesClass". I have another ActiveX class library
> (DLLProject2) that contains a reference to DLLproject1 and contains a
> class that exposes an instance of the PropertiesClass as a property -
> like this:
>
> Public Property Get PropClass() As DLLproject1.PropertiesClass
> ....
> End Property
>
> Both these classes use binary compatibility. If I need to change
> something in DLLproject1 that breaks binary compatibility, then I go
> ahead and do this. But when I go back to DLLproject2 and try to build,
> I get the error "The binary compatibility DLL or EXE contains a
> parameter type or return type whose definition can not be found".
>
> I understand why it is telling me this, its because I broke binary
> compatibility in the referenced DLL. But I need to tell it to build
> anyway. The only way I can get round this is to turn binary
> compatibility off for DLLProject2, build, and then turn it back on
> again and build again. This takes ages and its a real pain in
> development when the interface for DLLproject1 might change quite
> often.
>
> Is there something I can do? Please help, I am pulling my hair out with
> this problem.
>
> Matt Roberts
>

Normally I use a copy of the dll  to serve as the binary model. If you
change the dll interface and continue pointing at the old copy, you will get
the error above.