Execution of 32 bit VB6 programs on 64 bit windows client from 64 bit Linux Server.

M

Meenakshi

Guest
I am very new to Linux. We have a set of programs in VB6 which we execute in client-server mode. Currently we use 32 bit(and 64 bit) windows systems as server and client. Now for some requirement we need to use 64 bit Linux OS as the server and 64 bit windows as client and Pervasive 11 as the database.
Please let me know the hardware configuration for this requirement. Also i need to know the softwares/libraries i should install in the Linux system to execute these programs.
 
Last edited:


I'm assuming Pervasive 11 will be running server-side and that you will be using the native Linux version of Pervasive on the server? If so, we don't need to worry about that side of things. You say the clients will all be running on Windows, so that's another thing we don't need to worry about, which just leaves your VB6-based server application, which is a Windows executable.

In order to get your server-app running on the Linux server, there are three potential solutions that I can see:

1. Install WINE
WINE is a compatibility layer that allows Windows programs to run on Linux systems by translating Windows API function calls to their Linux equivalents (or something like that!).

But you should be aware that there are no guarantees that your original VB6 application will run properly under WINE, or that it will even run at all. Also, I'm not sure what the security ramifications would be when attempting to run a network exposed service on a server via WINE. WINE is fine when running a Windows application on your Linux desktop; but something in my gut tells me that using WINE is a bad idea on a server... But it might be worth looking into. It might be a quick fix to get the server-application working on Linux. Which is about the only positive thing I can see with this option!

2. Virtualisation
You could have a virtualised Windows machine running on the Linux server (using vmware, or some other virtualisation software) and have that running the original VB server application. This is probably a better idea than using WINE. But it means that your server is still a Windows machine; albeit running virtually on a Linux server!

That said, because your applications are written in VB; you are kinda tied to Windows. Which leads me to the final option:

3. Port the server app to run natively on Linux
This would involve rewriting your server application in a different programming language - C, or C++, or Python etc. This would be the most costly option in terms of time and money, but it might be worth it in the long run.

There is a BASIC language which is similar to VB called Gambas. You might be able to port your server application to run natively in Linux using Gambas. I haven't really used Gambas, so I don't know how feasible it is; but it might be something to consider if you do decide to port the server app.

Personally, I would recommend porting/rewriting your client and server applications using C++, with a cross-platform GUI toolkit like QT for any GUI components and using CMake to manage the build-system. That way you could make the client and server applications cross-platform, so they can be compiled and ran on Windows, Linux or Mac. Meaning you'll be able to deploy your server on any platform. And likewise, the client machines will not have to be tied to a particular platform either.

Porting/rewriting the client to work on multiple platforms might not be required, but at least porting/rewriting the server to be cross-platform would make it easier to redeploy your server in the future.

All three options have their distinct advantages and disadvantages, but I'd say it's a choice between virtualisation and porting. I could be wrong, but I think using WINE might be a bad idea!

You could even use Virtualisation temporarily whilst your development team work on porting the applications and then switch to the ported applications after that.

Hopefully that has given you some food for thought!
 
Last edited:
Thank u so much JasKinasis for your valuable solutions. I am currently doing requirement analysis and your suggestions are reallly going to help me a lot.
 
I have checked out Gambas and it's more along the lines of VB3 in terms of the level of functionality to VB6. Depending on what types of APIs needed, Gambas might not be an option.

For short term I would go with running Windows in a VM and long term porting over to a platform independent language like C++ or Python. Python is an easier language to learn for those coming from a VB background. (I have been with VB since VB4/VB5 and I can read and understand the language/syntax with minimal research) Is this an in house application? If it is and the team doesn't know C++ or Python, C++ is a greater learning curve than Python.

Good luck and let us know what you decided.
 
Thanks Christi...for the solution...its going to help me a lot..!!!!
 
I have a windows 7 64 bit system. I have to install SUSE Linux EX 11 SP3 OS on it. I have the DVDs available with me. How should I proceed ?
 
Do you want to dual book and have both Windows & SUSE installed or do you want to just install SUSE?

Does your computer have a "traditional" BIOS or is it UEFI? (I think a Windows 7 install has traditional BIOS, not 100% sure.) Look up the details of your system online and it should tell you. Or, if you don't know, write out the specs and we should be able to help you. Normally if you boot up your system you should be able to press F2 and get into BIOS. It comes up fast when booting your system (at least it does for me- sometimes I have to boot a couple of times before I capture the F2) and you should be able to tell if it's traditional BIOS or not. We need to know this as you have to boot from your DVD and there are different instructions depending on what type of BIOS you have.
 
Thanks Christi for your reply....my requirement was to install SUSE only. I formatted the machine and could install the SUSE Linux on it.
 

Members online


Top