SOLVED visual basic 3.0 compatible with 64-bit version?

Joined
Apr 5, 2010
Messages
8
Reaction score
0
Hello,

Does anyone know whether programms developped in visual basic 3.0 (vbrun300.dll) can be run in Windows 7 version 64-bits?
I tried it in a 32-bits version and it works perfectly!
In a 64-bits version, it refuses to work, whatever I try in the compatibility modus.
Is there a solution to run it in a 64-bits version?
Tanx!
 

Ian

Administrator
Joined
Oct 17, 2008
Messages
3,484
Reaction score
632
Welcome to the forums :)

I don't see why VB3 compilied applications wouldn't run in Windows 7 x64, do you have the error message that was given when you tried to run it?
 
Joined
Apr 5, 2010
Messages
8
Reaction score
0
Hello Ian,
The error message said: This programm is not compatible with this version of windows. Please contact your software dealer for a compatible version... or something like this.
I tried all possibilities in the compatibility mode, but nothing seemed to work.
In Windows 7 32-bits version, there was no problem at all to make the progamm work.

Welcome to the forums :)

I don't see why VB3 compilied applications wouldn't run in Windows 7 x64, do you have the error message that was given when you tried to run it?
 
Joined
Sep 29, 2010
Messages
1
Reaction score
0
I maintain legacy 16-bit VB3 software that is compatible with Windows 7 and have done a lot of research in this area.

16-bit applications will not natively run in Windows 7 64-bit full stop. This is because when a 64-bit capable CPU is started in 64-bit mode, it cannot change into 'real mode' (the mode used by 16-bit applications) without a hard reset. If a processor is in 32-bit mode, it can swap between real mode and protected mode at will.

The only workaround here is a virtual machine- Windows 7 comes with a free version of Windows XP which is usable inside a custom version of Microsoft Virtual PC. Google for "Windows 7 Virtual XP Mode". Once your copy of Windows 7 has been validated as authentic, it will allow you to download Virtual PC and the XP Image.

MOD NOTE: Only Win 7 Professional or Higher provide free use of Microsoft Virtual PC - XP Mode


It's definitely not a pretty solution, but the only option for my customers who have gone ahead and bought a 64-bit OS without checking to see if their installed software is 64-bit compatible.
 
Last edited by a moderator:
Joined
Apr 5, 2010
Messages
8
Reaction score
0
can u please send me vb3 installation file .badly need it
Where to?
You problably need vbrun300.dll which should be copied into windows/system32.
This file can easily be found on the internet.
GRTZ
Willy
 

Ace

Microsoft MVP
Joined
Jul 7, 2011
Messages
314
Reaction score
61
I'm curious why you're going with VB3? VB6 is already highly outdated, and you can get the VB 2008/2010 express edition for free at Microsoft.com. It depends on whether the program was given x64 architecture support as well, not necessarily to do with what compiled it.

Edit: Or is this a program that you have, and you're not quite a developer? I see this thread is a year old though.
 
Joined
Apr 5, 2010
Messages
8
Reaction score
0
I'm curious why you're going with VB3? VB6 is already highly outdated, and you can get the VB 2008/2010 express edition for free at Microsoft.com. It depends on whether the program was given x64 architecture support as well, not necessarily to do with what compiled it.

Edit: Or is this a program that you have, and you're not quite a developer? I see this thread is a year old though.
I developped an educational program way back in the 90-ies when VB3 was hot. It was a quite big program but in those days the runtime dll's were very compact. The program could easily be copied on a 3,5 inch diskette with only 1,2Mb... In those days it was the only cheap way to freely distribute it among our students. For that reason the program was never upgraded to VB4-5-6. Upgrading it now, means (as far as i know) rewriting the entire program, or do you know a possibilty to transfer VB3-programs in e.g. VB.net?
 
Joined
Feb 1, 2017
Messages
1
Reaction score
1
You can't run VB3 applications (which are 16-bit) on any 64-bit version of windows but you can run VB3 16-bit applications on the 32-bit versions of XP, Vista, Win-7, Win-8, Win 8.1 and Win 10.
You may need to set the compatibility level to Win-XP SP3.

The other way to run them on a 64-bit version of windows is to create a 32-bit virtual machine and run them in that. You can use Virtual Box, Windows XP Mode or VMWare player to do this.

If you are running windows 7 64-bit and install windows 7 32-bit into VMWare player (as an example) you can use the same product key for windows as on the host machine and it appears to work with no problems, At least it did for me the last time I tried this. I actually have lots of windows licenses via a Microsoft Action pack so I no longer need to use the same product key.
 
  • Like
Reactions: Ian
Joined
Oct 26, 2017
Messages
1
Reaction score
0
I know this thread is extremely old, but YES, you can convert your 16-bit VB3 app to at least 32-bit so it runs on any modern Windows operating system, including 64-bit. This is assuming you didn't use any special add-ons in your 16-bit app that didn't come included with VB3 itself. If straight VB is all that you used, then you're in luck and sitting pretty.

Goal:
Run old 16-bit VB3 apps NATIVELY on modern 64-bit versions of Windows without any Virtual Machine crap

Choices/Alternatives:
1. Run everything in a VM, which always sucks because of massive performance loss/overhead. Use this as a safe but ridiculously bloated and potentially expensive last resort.
2. Run everything on 32-bit versions of Windows, which support 16-bit apps. This is automatically enabled in previous versions of 32-bit Window, but requires you to manually enable "NTVDM" in Windows 10 (32-bit version only). Certainly the easiest and most supported route to take, but the major limitation is that you don't get to run your app under 64-bit Windows.
3. Actually rebuild the VB3 app as a 32-bit app, which will allow it to run on every single version of Windows since (and including) Windows 95. This is the vastly superior solution if the source code is available (which it is, thanks to VB3 decompilers).

Prerequisites:
1. The original Source Code of the app itself
2. If source is not available, VB3 decompilers exist to extract it from the original EXE file, though this is not an easy route to take because the resulting extracted code is often a ghastly mess that will require skilled re-organization. Bonus if the original developer is still alive, let alone available.
3. Microsoft Visual Basic 4.0 Professional, which is the only version of VB that could install as either 16-bit or 32-bit. VB4 can be downloaded from most abandonware web sites. **Cough ** VB4 Download Link ** Cough**. Get the CDROM version if you can, it's a heck of a lit easier to install than the floppy version. VB4 is MUCH bigger of an install than VB3. Make sure it's the Professional version of VB4 no matter what version of VB3 was originally used.

Details:
The ONLY way to truly convert your VB3 apps to at least 32-bit is to load your project into the next version of VB and rebuild, which would be VB4. VB4 allows a VB3 project to be loaded in, automatically updated, and then rebuilt as 32-bit with less effort than trying to load into any later versions of VB, such as VB6. Once you're app is 32-bit, it will then run on ANY modern version of Windows right up to Win10 64-bit. Again, VB4 is all that you need - later versions of VB are not required unless you want to follow an upgrade path that will ultimately allow you to get your (eventual) VB6 project into VB.NET and modernize it from there. The VB to .NET path is not always easy but IS possible if you're willing to be extremely patient and you remain determined. Just think carefully if it's worth it, because your VB4 rebuild alone to 32-bit will be enough to get your VB3 app to run on 64-bit Win10. Just know that your now-VB4 app will be limited in that it will not be aware of modern Windows technologies such as Active Directory domains, anything related to the Internet, etc. Most advice you will find online is that, rather than a long and tedious upgrade path of an old VB project, just re-write a modern .NET version of it from the ground up if at all possible.

Instructions:
1. On a 32-bit version of Windows, install VB4, which allows you to select both 16-bit and 32-bit versions of VB4 for installation. Obviously, you'll want to select 32-bit only (leave 16-bit completely out of the picture). However, since the installer itself is a 16-bit installer, you're stuck installing VB4 into a 32-bit version of Windows - you will not be able to install any version of VB4 into any 64-bit version of Windows because the required 16-bit subsystem is not present in 64-bit WIndows. I have installed both 16/32-bit versions of VB4 into the 32-bit version of Windows 7 with no problems, no virtual machine required (haven't tried it on Windows 8 because you don't run it either). You should even be able to install VB4 onto the 32-bit version of Windows 10, though I haven't tried it yet. I personally like installing VB4 into a Windows 95 VM just for the nostalgia, and also because VB4/32bit was specifically built to run on Win95 in the first place (following intended compatibility is always best when possible). The 16-bit version of VB4 was also specifically designed for Win3x and runs great under it, but I digress.
2. Load your VB3 project into VB4, allowing it to update whatever it needs to in the process. THIS is where a "clean", add-on-free VB3 app really pays off.
3. Make whatever tweaks/changes you need to and build/compile your app - it will now be a 32-bit Windows program. Congratulations, you just brought a 16-bit Windows app into the 21st century with at least a longevity for another 10 years with Windows 10, even 64-bit.
4. Your program will now run on any 32 and 64-bit Windows version. All 64-bit Windows includes something called "WoW", or the Windows-on-Windows subsystem that allows backward compatibility. 32-bit windows wqas able to run 16-bit apps. 64-bit Windows will run 32-bit apps (but not 16). Someday, 128-bit Windows will run 64-bit apps (but not 32).
CRITICAL: Your VB4 app no longer uses a single DLL like VBRUN300.DLL. In addition to requiring VBRUN432.DLL, it may now also require a number of accompanying .OCX files, which is the big game changer that VB4 brought to the table. As such, VB4 Professional Version included tools that allow you to create an installer for your app. You may choose to use it, but I found the installer setup tools that get bundled with VB to be problematic - such as uninstalling critical VB4 system files from the computer if you test your installer/uninstaller on the same system VB4 was installed on (actually breaks VB4, requiring re-installation). Consult the VB4 documentation on deployment of your app.

Good luck with your conversions. Running an app natively is ALWAYS better than the hassles and massive performance-robbing overhead associated with virtual machines, though VMs are wonderfully miraculous when there is no other option.

Bob Hodges

PS: You should be VERY excited whenever Microsoft is willing to release another 32-bit version of Windows, because it also buys those ancient 16-bit Windows applications another 10 years of life. And have you noticed that old 16 and 32-bit software (including Windows itself) is WAY faster than 64-bit if your usage remains under 4GB of RAM (which is most of us actually)? Shhhhh - don't tell anyone.
 
Joined
Apr 5, 2010
Messages
8
Reaction score
0
Thank you very much, Robert, for your help. I could revive all my old educational applications, so they can be used again. A lot of schoolchildren will have great profit by using my applications again. I had given up al hope for ever to be able to use all my old applications. In the meantime I had rewritten one of my applications in vb.net, but I didn't have the courage to rewrite all my old applications from scratch. Now all my applications are running again, thanks to you.
Thank you again for al the effort you put into your extended reply.
Greetings,
Willy Pauwels
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top