Kinook Software Forum

Go Back   Kinook Software Forum > Visual Build Professional > [VBP] Third Party Tools

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 12-05-2007, 12:48 PM
garyb@se.rr.com garyb@se.rr.com is online now
Registered User
 
Join Date: 02-19-2004
Location: Saint Augustine, FL
Posts: 21
Binary Compatibility

I know that this topic has been tossed about, but reading the posts I got lost

I have a few DLL's and an EXE server that are all made to be Binary Compatible using VB6.

When I do a build (and this is whats confusing) how do I get the compiled Compatibility references to compile automatically if the reference has changed?

In other words, if I change the interface of a function in my DLL's or EXE Server, when I go to compile I get the ole Binary Compatibility error.

Can VBP automatically rebuild the compatibility reference if it is no longer the same?

From what I see in the configuration choices for the steps in VBP there is a field that says "Update the Compibility Directory for Each project", but it does not seem to do what I think it's going to do... in fact, it does not seem to do anything...

Any help or clarification would be appreciated.
Reply With Quote
  #2  
Old 12-05-2007, 01:14 PM
kinook kinook is online now
Administrator
 
Join Date: 03-06-2001
Location: Colorado
Posts: 6,034
To avoid the compatibility error when building after breaking interface compatibility, on the Compatibility tab of the Make VB6 action, change 'Set version compatibility before building' to Project compatibility.
Reply With Quote
  #3  
Old 12-05-2007, 02:09 PM
garyb@se.rr.com garyb@se.rr.com is online now
Registered User
 
Join Date: 02-19-2004
Location: Saint Augustine, FL
Posts: 21
Quote:
Originally posted by kinook
To avoid the compatibility error when building after breaking interface compatibility, on the Compatibility tab of the Make VB6 action, change 'Set version compatibility before building' to Project compatibility.
It does not seem to make any difference. My VBP project starts with one A/X DLL with no references, I then have another that references the first one, and another that references the first two and so on, and then 5 regular EXE programs that all have references to the DLL's.

What happens is that I have to go to the second DLL, change the compatiblility to NONE in VB6, recompile my compatibility reference to create the file DLL, then set the project back to Binary compatibility then recompile the distribution DLL to another folder, then do the 3rd DLL and 4th and so on...

Then I have to open all of my regular EXE's to change the references and recompile them!

I only really have to do all of this if I change something in one of the DLL's, which I try not to do unless it's necessary, but when it is necessary it's a pain
Reply With Quote
  #4  
Old 12-05-2007, 02:29 PM
kinook kinook is online now
Administrator
 
Join Date: 03-06-2001
Location: Colorado
Posts: 6,034
What exactly do you mean by 'It does not seem to make any difference.'? Testing here with VBP v6.6 and the sample at %ProgramFiles%\VisBuildPro6\Samples\Visual Studio\VStudio.bld (which creates VB6 projects similar to what you described under %TEMP%\VisBuildPro\VStudio\work\Source\VS6 when built), after building the 'Build VB6 projects' step, then modifying the signature of DoSomething() in SecondVB\SecondVB.vbp -> Class2.cls (and the corresponding call in FirstVB\FirstVB.vbp -> First.frm if needed), rebuilding the 'Build VB6 Projects' step fails with the expected compatibility error, but changing the aforementioned option to 'Project compability' and rebuilding works. Please tweak that sample to demonstrate the problem. Thanks.
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



All times are GMT -5. The time now is 11:22 AM.


Copyright © 1999-2023 Kinook Software, Inc.