Board index » delphi » 16-bit to 32-bit upgrade issues

16-bit to 32-bit upgrade issues

I have been asked to estimate the effort required to port a fairly large project from 16-bit Borland to 32-bit Borland.  This application was written by developers long gone from the company, and there is no corporate knowledge base on it.  I have some C++ programming experience, but with Microsoft, not Borland.  My questions:

(1) Is there a foolproof method of determining which compiler was originally used for the project?  Based on some of the copyright dates in Borland header files (e.g. 1991, 1992), I would guess it's Version 3.0.  (The program was written ca. 1994.)  I tried loading it into my copy of BC++ 3.0, and aside from errors like missing source files, it seemed to load okay.

(2) In general, how complex a task is it to upgrade fairly large programs?  Are the common library routines backward compatible?  Making simple changes, even by the score, does not pose a problem, but the prospect of digging into every source file, and making substantial design and code changes does.

It would be great to hear from those of you who have done similar application upgrading.

Thanks in advance,

David Lewis

 

Re:16-bit to 32-bit upgrade issues


What type of application is it ? Does it use OWL, WinAPI, or just DOS
level ?

OWL 1.0 is a bit of a pain to port at this late date.

If it is OWL2.0 or non-OWL, then it is relatively straight forward apart
from the memory, implicit size of int, and pointer systems... That
really depends on how well the code was written in the first place.

Cheers
Lynn

Quote
David Lewis wrote:
> I have been asked to estimate the effort required to port a fairly large project from 16-bit Borland to 32-bit Borland.  This application was written by developers long gone from the company, and there is no corporate knowledge base on it.  I have some C++ programming experience, but with Microsoft, not Borland.  My questions:

> (1) Is there a foolproof method of determining which compiler was originally used for the project?  Based on some of the copyright dates in Borland header files (e.g. 1991, 1992), I would guess it's Version 3.0.  (The program was written ca. 1994.)  I tried loading it into my copy of BC++ 3.0, and aside from errors like missing source files, it seemed to load okay.

> (2) In general, how complex a task is it to upgrade fairly large programs?  Are the common library routines backward compatible?  Making simple changes, even by the score, does not pose a problem, but the prospect of digging into every source file, and making substantial design and code changes does.

> It would be great to hear from those of you who have done similar application upgrading.

> Thanks in advance,

> David Lewis

Re:16-bit to 32-bit upgrade issues


On 12 Dec 2001 15:34:21 -0800, "David Lewis" <dle...@karta.com> wrote:

Quote
>... which compiler was originally used for the project?

Do you have actual project files, or just source code files?
If project files, what are the extensions: *.prj or *.ide?
Or do you have make files?

Quote
>Based on some of the copyright dates in Borland header files (e.g. 1991, 1992),
>I would guess it's Version 3.0.

How come you have header files? They're part of the compiler package.
Do you still have the compiler installed or not? If so, simply starting the
compiler and looking at the "About" box will tell you the version. If you
don't, the headers should have been long gone. If you still have files -
- headers, libs, bins - from the original compiler, look at the date/time
stamps on the files (from a dir listing). Usually the *time* stamp will
indicate the version. e.g. - Turbo C++ 3.0 headers will have a timestamp
of 3:00 AM, BC++ 3.10 will have 3:10 AM, BC++ 4.50 will have 4:50 AM,
BC++ 4.52 will have 4:52 AM, etc.

Quote
>The program was written ca. 1994.

That suggests that it had to be BC++ 4.50 or earlier.

Quote
>In general, how complex a task is it to upgrade fairly large programs?  

Depends on what's implied by "upgrade". There's a significant difference
between "upgrading" and "converting".

Quote
>Are the common library routines backward compatible?  

Yes and no. It depends on the compilers/versions used.
Each case has to be assessed on its own merits. Does
it use any application frameworks? (e.g. - GUI libs)
Does it use any template code? Does it use only/mostly
C code, or extensive C++ code? If C, there may be little
change. If C++, there may be a number of changes due
to the evolution of the language in the past 7-10 years.
One such example is the use of exceptions and RTTI
in later functions. Another is the requirement to pass
references to temporaries as const.

Quote
>port a fairly large project from 16-bit Borland to 32-bit

Numerous factors involved. e.g. - integer sizes
Are you converting from Win16 to Win32?
From 16-bit DOS to Win32 console?
Which compiler are you expecting to use to do the
conversion? Builder 5 or 6? BC++ 5.02?  Earlier?

--
Wayne A. King
(ba...@torfree.net, wayne.k...@ablelink.org,
 wak...@idirect.com, Wayne_A_K...@compuserve.com)

Other Threads