Subj : Multi-platform EXE?
To : Don Guy
From : Jonathan de Boyne Pollard
Date : Thu Sep 13 2001 06:38 am
DG> LOADDSKF.EXE appears to run as a native process, regardless of whether
DG> it is launched from a DOS or and OS/2 command prompt. Is it possible
DG> to duplicate this with Borland C++ 1.0?
Yes, in two ways:
The first requires the OS/2 1.x Developers' Toolkit (as I recall). You BIND a
DOS stub loader program and family API library onto the OS/2 program. The stub
loader program, when executed, loads the executable proper into memory, binding
the calls to the OS/2 system API to the family API library, which translates
them into DOS system API calls.
The second involves linking two separate programs, one for DOS and one for
OS/2, and using the former as the stub executable in the latter.
In either case you'll need a replacement for Borland's C library, of course.
You won't be able to use the one that Borland supplies, since that uses the DOS
system API and not the Family API. Many years ago, because I didn't have the
OS/2 1.x Developers' Toolkit, I wrote a replacement 16-bit library that used
the Family API, which I used, in combination with Borland C++ 3.x for DOS and a
Family API to DOS API shim library that I wrote, to create version 1.0 of my
Command Line Utilites. I never released the C library to the general public,
because Borland came out with a proper 32-bit Borland C++ for OS/2 and it was
no longer worth the time and the effort to do so. (I did release the Family
API library that I wrote.)
Why do you want to create a bound executable anyway ? I urge you to not
encourage the continued use of DOS by making more DOS programs. Encourage the
use of OS/2 instead. Make a native OS/2 program and have done with it.
� JdeBP �
--- FleetStreet 1.22 NR
* Origin: JdeBP's point, using Squish <yuk!> (2:257/609.3)