3

I need to work with Delphi 6 Update 2 in Windows 8.1 x64 (in case you were wondering, it's about maintaining an old application, migrating to a newer version is not an option. I can't use a VM because I use the same machine to connect to some peripherals that don't work in a VM).

The problem is that Update 2 has a 32 bit installer with a 16 bit stub. So the current behaviour is that the installer starts, it extracts the files in a temp location, starts the setup then nothing appears on screen.

So far, I gathered that it is impossible to do it. But the same behaviour I 've seen for SQL Server 2000 (don't ask) but there I was able to use msetup.exe (DemoShield) to open a sqlservr.dbd that started the script. However, there is no such dbd file. I guess I was lucky on SQLServer 2000. So far I've tried compatibility mode, DosBox, replacing the setup file with both Installshield 3 and 5, waiting for hours for the setup to start (sometimes, W8 does that), even comparing files and registries on an XP machine before and after update 2 but this might be a bit too risky to apply on a real machine.

RRUZ
  • 134,889
  • 20
  • 356
  • 483
cleantone
  • 83
  • 1
  • 9
  • 4
    Why not install Delphi in a VM, and then run the compiled app on the Host when interacting with the peripherals? You could use Delphi's remote debugger across the VM boundary, if you need to debug the app. – Remy Lebeau Mar 29 '14 at 18:35
  • Email me at chrpai@iswix.com and I could probably figure something out for you. Either how to extract the 32bit out of the 16bit wrapper or repackage it as a standalone patch using a modern installer. – Christopher Painter Mar 29 '14 at 21:36
  • 1
    I think this works fine in x64 just as it always has done. The system supplies a compat shim in place of the 16 bit stub. I've never had any problems. – David Heffernan Mar 30 '14 at 06:54
  • I'm having the same issue with Win 7 x64. – Rob K Apr 29 '14 at 20:12
  • Hi Rob. So I am not really sure this applies to you, but check below. There was something hanging in the setup process ( a dependency on rundll). I shut it down and it worked afterwards. – cleantone Apr 30 '14 at 21:05

2 Answers2

2

Since Windows 8.1 86 includes Hyper-V for running VMs, most modern hardware supports Hyper-V, and Windows 8 x86 can still run 16-bit based apps:

Install a Windows 8.1 x86 VM under your host physical machine, then install it there.

The up-tick: it is easy to move your VM to a new host without needing to reinstall a full new VM.

See http://www.techrepublic.com/blog/windows-and-office/get-started-with-windows-8-client-hyper-v-the-right-way/7893/ and http://www.infoworld.com/d/virtualization/5-excellent-uses-of-windows-8-hyper-v-208436 to get started with Hyper-V.

Hyper-V can redirect quite a bit of hardware from the host to the VM nowadays. For "old" hardware like COM and LPT ports you often can buy USB adapters that can be redirected.

If installing on x86 Windows 8.1 works and x64 fails, I think you have proved the assumption that the 16-bit portion of the installer is the culprit.

Jeroen Wiert Pluimers
  • 23,965
  • 9
  • 74
  • 154
  • Wouldn't it just be easier to install D6 on Win 8 directly? – David Heffernan Mar 30 '14 at 09:01
  • @DavidHeffernan define easy... I was really glad all my work was in VMs when recently my boot SSD crashed. Got a replacement SSD, installed a new (and more recent) Windows host, restored all the VMs and I was back in business. Took a bit of time, but a lot less than installing everything from scratch. – Jeroen Wiert Pluimers Mar 30 '14 at 10:01
  • Working in VMs is awkward. And I've never had any trouble installing D6 on x64. It just installs. – David Heffernan Mar 30 '14 at 15:00
  • I think you make a very absolute statement about VMs. Did you get D6 to install on Windows 8.1 x64? – Jeroen Wiert Pluimers Mar 30 '14 at 15:57
  • I installed on Windows 8 x64 which was later upgraded to 8.1. Why would D6 not install on Windows 8.1 x64? Do you have any sound reason why it's not possible? – David Heffernan Mar 30 '14 at 15:59
  • `Update 2 has a 32 bit installer with a 16 bit stub` + remembering that back then there were some 16-bit parts left here and there sounds like enough reason for me to be suspicious. – Jeroen Wiert Pluimers Mar 30 '14 at 16:22
  • 1
    Windows x64 has always included compat shims that replace the known 16 installer stubs with 32 versions that do the same thing. I've installed D6 upd2 on x64 machines from Vista through Win7 to Win8. There's no issue. You just need to install to a location where the program files are writeable because the IDE writes to its installation directory. Some people install to `C:\Delphi`, I personally apply permissive ACL to install dir. Either way works. I think you are spreading FUD. – David Heffernan Mar 30 '14 at 16:24
  • @Jeroen Wiert Pluimers - I understand the advantages of working under a VM and I know I can emulate most of the peripherals, but in my case it will not work. Had there been only code I would have long gone that way – cleantone Mar 31 '14 at 07:41
  • @David Heffernan - I have given full rights to c:\program files (x86)\Borland to all users and upd2 is ran from somewhere within the folder. Also, this is 8.1. I don't honestly think this is really relevant, but in my case, the installer is not displaying the usual screens. I will check again though, and update the thread – cleantone Mar 31 '14 at 07:44
  • @Cleantone I've done this many times with no trouble. Win8 is not special in this regard. You are elevating right? – David Heffernan Mar 31 '14 at 07:52
  • @David Heffernan: I am attaching a screenshot of Task Manager (https://onedrive.live.com/redir?resid=4FA1892BF2106B62%211595). There is nothing else other than those 2 background processes. – cleantone Mar 31 '14 at 17:22
  • 2
    @All: immediately after I pressed send, I analyzed the wait chain for the setup process (I am new to this OS so I did not know it existed, but I said what the hell). I noticed that there was a rundll32 blocking the execution. The setup immediately started and all other 16 bit setups started as well. So i guess there was something strange on my machine. As a drawback, the setup insisted installing the files in c:\program files\borland instead of c:\program files (x86)\Borland while the initial setup did not let me install everything in c:\program files – cleantone Mar 31 '14 at 17:33
1

Maybe my blog post from last year can solve your problem:

http://blog.dummzeuch.de/2013/11/11/delphi-6-on-windows-8-1/

excerpt:

I just deleted the registry entry

HKCU\Software\Borland\Delphi\6.0\LM

(I did not make a backup, what would have been the point?)

I started Delphi 6, ignored the warning about incompatibilities (which was talking about Delphi 7 anyway) and went through the registration/activation process again. This time it worked.

Maybe I should mention, that I did not install any of my Delphi versions to c:\program files but put them into c:\Delphi instead to avoid any problems with access rights to the installation directory.

dummzeuch
  • 10,975
  • 4
  • 51
  • 158
  • 1
    Yes, it was. Sorry, I tend to forget that there is still a 32 bit version. – dummzeuch Mar 30 '14 at 16:33
  • @Dummzeuch: thank you for your input. I'm not sure we are on the same page here. Installing/running the base D6 works like a charm. When I try to update to upd2 (and I want to update to upd2 both because I have to install some components and for compiling compatibility with another synced W7 machine), the installshied stub does not start. Or it starts, but no screens are shown on my display. I will try your advice though. Thanks – cleantone Mar 31 '14 at 07:48