2
votes

We are working on borland delphi 5 on windows 2003 R2x64 bit Server OS.

Now we are going to upgrade our Windows OS from 2003 to 2012. I would like to know whether borland delphi 5 version is compatible with windows 2012 server OS.

Thanks In advance

Mannual Joseph

3
As already said, yes you can. However, it also depends on which Windows API calls your app might be using, as well as any drivers your app might be using. - Jerry Dodge
As @JerryDodge stated...the API's are where the gotcha's are...I remember working on some Windows Security API...and there was no way to make it work in 32bit...because MS had an internal structure that held a 64 bit data type and there was no way to pass a value to this internal data structure...but if you don't do anything weird...you should be fine... - House of Dexter
@House You can work with 64 bit data in a 32 bit process - David Heffernan
@David yes you can...but you can't if you can't get to the 64bit data...i.e internal data structure with no properties to access it...It was a bug in MS code for accessing Security Tokens and you needed to get higher privileges, the API after you passed your data did a sizeof and of course it failed because internally they stored it as 64 bits but gave you no access to it...MS workaround was to compile in 64bits. Don't remember the API call but I banged my head on it about 2 years ago... - House of Dexter

3 Answers

2
votes

Delphi 5 applications are 32 bit applications, using the Win32 API, which would run on Windows Server 2012.

But in respect to your application:

  • As a compiler, Delphi 5 apps would run on Windows Server 2010;
  • You would have to check all your third-party components (visual or DB);
  • Be aware that system-level expectations did change since Vista and Windows Server 2008 (e.g. how the common folders work);
  • Also note that your VCL UI won't be themed by default, and may have some refreshing issues.

The upcoming Nano Server edition of Windows 2016 will only provide Win64 APIs, and won't allow 32 bit code execution any more. So you would not be able to run Delphi 5 application in Nano Server - even if Windows 2016 (with its full APIs and GDI) was told to be still Win32 compatible - so Delphi 5 compatible.

1
votes

Delphi 5 produces executables that can be run on any 32 bit or 64 bit version of Windows. So yes, Delphi 5 can produce executables that are compatible with Windows 2012 server.

0
votes

For the most part, if your application purely uses things built-in to Delphi, then you shouldn't have any problems at all. Delphi automatically uses the Windows API to be backwards-compatible. Therefore, if you have a very simple application using only the things which Delphi provides to you, then chances are your app should work in any (current) version of Windows.

On the other hand, if your app makes use of any direct Windows API calls, or if it uses other third-party libraries (such as ones requiring additional DLL's), then you may be in for an upgrade.

The Windows controls for a forms application are extremely standard, and adapt to all versions of Windows - and even can even automatically style to whatever version of Windows you're using. However, if you have any third-party custom controls, or anything which access the Windows API directly, then you will need to make sure those calls are compatible.

When using the Windows API, it's safe to assume that most of the calls are backwards compatible. Microsoft is very good at this. Again, if using the standard components/controls available in Delphi, and not directly accessing the Windows API, then you should be safe.

When it comes to 32/64bit applications... Every version of Windows supports an emulator of the prior bit-wise version. So, for example, all 64bit versions of Windows support running 32bit applications. On that same note, all 32bit versions of Windows support running 16bit applications. This support is through an emulator (WOW64) allowing even further support of backwards-compatibility.

In the end, as long as your application is purely using what Delphi makes available to you, and you aren't importing any additional third-party libraries, then you should be safe to go. I would say a 98% guarantee. The other 2% has to do with whether your app is using anything which relies on particular 32bit libraries.

When it comes to third-party libraries, the rule of thumb is to just make sure the library vendor claims they support the version of Delphi you're using. That still doesn't always mean it will work with 64bit though. For example, things which directly use drivers will also have to be sure to support either 32bit or 64bit drivers.