473,396 Members | 2,002 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

VB6 and COM compatibility

I recently started in a new position, and I inherited an application written in VB6 that uses a bunch of DLLs and OCX controls. Version Compatibility is set to Binary at the project level, but since I do not have the most recent source code, on compilation it always asks me to break compatibility. The app has been installed on half a dozen remote sites, and I am not sure what all the different versions are. To clean up this mess, I decided to recompile everything without any Compatibility settings. That works fine, and tested it fine locally. There are no other apps that use these controls or DLLs, so I think it's safe to redeploy this project without COM Compatibility. However before I can reinstall this app on the remote sites I guess I need to clean up all old OCX, DLLs and registry settings on those boxes to make it work. Is there an easier way?
May 15 '07 #1
2 1895

if the project is installed with

A , the setup and deployment wizzard , or a customized setup1.exe
B a installer based technology ( wise , installshield etc etc )

You do not need to do anything at all as to install the new version on the target system
these installation routines will automaticly overwrite ( in the case of installer deinstall ) previous versions of dll`s ocx`es
by the way did you notice the dotnet prefix in this newsgroup ? :-) some people over here might be upset with your non dotnet related question , so you might bether ask questions in the classic VB groups microsoft.public.vb.XXXXX ( the ones without dotnet )

:-)
regards

Michel Posseth
"Carlo" <Ca***@Work.comschreef in bericht news:OG**************@TK2MSFTNGP03.phx.gbl...
I recently started in a new position, and I inherited an application written in VB6 that uses a bunch of DLLs and OCX controls. Version Compatibility is set to Binary at the project level, but since I do not have the most recent source code, on compilation it always asks me to break compatibility. The app has been installed on half a dozen remote sites, and I am not sure what all the different versions are. To clean up this mess, I decided to recompile everything without any Compatibility settings. That works fine, and tested it fine locally. There are no other apps that use these controls or DLLs, so I think it's safe to redeploy this project without COM Compatibility. However before I can reinstall this app on the remote sites I guess I need to clean up all old OCX, DLLs and registry settings on those boxes to make it work. Is there an easier way?
May 15 '07 #2
Carlo wrote:
I recently started in a new position, and I inherited an application
written in VB6 that uses a bunch of DLLs and OCX controls. Version
Compatibility is set to Binary at the project level, but since I do not
have the most recent source code, on compilation it always asks me to
break compatibility.
Oh ... my ... God.

So where /is/ the most recent code, then?
How "out of date" is the code you've been given.
How many "bugs" in the application are you going to re-introduce,
because you don't have the source code that /fixed/ those bugs?

Seriously, this is a crazy point to start from.
But anyway ...
The app has been installed on half a dozen remote
sites, and I am not sure what all the different versions are. To clean
up this mess, I decided to recompile everything without any
Compatibility settings. That works fine, and tested it fine locally.
If you really have recompiled **everything** - that's /every/ Dll and
exe that's been deployed to /every/ site, then you might have a fighting
chance of making this work.
There are no other apps that use these controls or DLLs, so I think it’s
safe to redeploy this project ...
Test it thoroughly first. Clean machines to start with, then try and
get hold of a tame user or two who don't mind having their previous
installations trashed while you confidence test the new one.
... without COM Compatibility.
Absolutely not.

The whole point of compatibility in the VB/COM world is that, if you
/don't/ have it turned on (preferably to Binary) then you're going to
have to go through this entire exercise for /every, single/ code change
that you make to /any/ of the DLL's.

With compatibility turned on, you'll /only/ need to do this if you
change the [published] API's to your DLL's, i.e. you break
compatibility, which is what VB's warning you about.
However before
I can reinstall this app on the remote sites I guess I need to clean up
all old OCX, DLLs and registry settings on those boxes to make it work.
Is there an easier way?
I'm guessing you'll be overwriting the same, physical files, so you
don't have to worry about those. When you register the DLL's and OCX's,
the Registry on each machine will be updated to the new ID's embedded in
the new DLL's.

HTH,
Phill W.
May 17 '07 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Jez Naisbitt | last post by:
Hi Guys, After a break of 2 years I'm now re-visiting the world of java. I recall on my last foray that I had to stick to java 1.1 so I could deploy applets from a server and obtain maximum...
0
by: flat_ross | last post by:
If there was one thing nice about "Binary Compatibility" in VB6, it would tell you at compile time that you changed your public interface. I am looking for the same functionality in .NET. I know...
6
by: someone | last post by:
Suppose that I have a class in an assembly that is delivered to the user, what can I do to change the class so that it doesn't break the binary compatibility? That is, user application can run...
13
by: Derek | last post by:
As I understand it there is a good amount of link compatibility among C compilers. For example, I can compile main.c with GCC and func.c with Sun One and link the objects using either linker (GNU...
2
by: Dominic | last post by:
Hi everybody, I'm planning to use serialization to persist an object (and possibly its child objects) in my application. However, I'm concerned about the backward compatibility issue. I'm...
1
by: Vycka | last post by:
Hello, There is a enterprise web application that is based on asp.net technologies and works on Microsoft IIS. The total number of users is 850. When the load of system gets very high, the...
14
by: frostalicious | last post by:
Used VB.NET (on my client PC) to convert VB6 executable to .NET executable. Placed the .exe file on a network drive on my server. From client, ran .NET Wizards "Trust an Assembly" to make the...
1
by: Simon Woods | last post by:
Hi I have a dll ('dll-X') which runs on top of (dependent upon) several other dlls. My build environment has a folder structure binaries compat-libs
17
by: osama178 | last post by:
Hi, What does it mean for an object to be binary compatible? And why aren't STL objects binary compatible? Any insights, links, resources for further reading are greatly appreciated. Thanks.
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.