473,765 Members | 2,121 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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 1926

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.publi c.vb.XXXXX ( the ones without dotnet )

:-)
regards

Michel Posseth
"Carlo" <Ca***@Work.com schreef in bericht news:OG******** ******@TK2MSFTN GP03.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
3016
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 compatibility with the standard browsers, supplied on all platforms: We live in the pre-press industry where folk use diverse platforms such as Sparc, Mac, PC (mnimum Win2K, or XP), using Netscape and Internet Explorer, etc.
0
1353
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 all the underlying stuff is different. But at the end of the day, I want to be told if the changes I made to my public interface are backwards compatible with an existing assembly. It is important to maintain backwards compatibility when...
6
481
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 with recompiling and relinking. I know that if I define an interface, and only expose the interface but not the class which implments the interface, I can add a data member to the class without breaking the binary compatibility. If the class...
13
2703
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 or Sun). What I'm curious about is why this compatibility exists in the absence of a standard C ABI? What encourages C compiler vendors to agree on implementation issues such as alignment, packing, etc., such that their object
2
6208
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 evaluating if we can easily resolve this issue. For example, I have a class MyClass consisting of 100 fields.
1
5850
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 system stops working and all users are receiving an error (see at the bottom). Doing IISRESET or restarting server helps (but just until the next big load). Additional information: - Server OS MS Windows Server 2003 Standard edition SP1
14
2323
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 .exe (on the network drive, on the server) "Full Trust." From the client, double-click on the ..exe (on the network drive, on the server) and it runs fine. So far, so good, but... On the server, where I've installed not VB.NET but .NET
1
1601
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
2959
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
9398
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10007
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 tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9832
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 protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7375
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5275
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5419
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3924
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3531
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2805
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.