Customer Issue: I just received an email from a customer who just purchased and installed my software. In her email she reports this error message:

Customer Issue: I just received an email from a customer who just purchased and installed my software. In her email she reports this error message:

"This App Can’t run on your PC to find apps for this PC, open Windows store."

A quick google search seems to indicate that my software (last compiled with Delphi 5) was installed on a device running Windows RT. 
I'm waiting to here back as to what type of computer she has.

Is there any other reason why this error would popup?
Is there a resolution out there?

TIA,
Mike

Comments

  1. Windows RT is for ARM processors (mostly used in tablet PC) and is incompatible with Intel code. There is no way to build application for windows RT in Delphi.

    ReplyDelete
  2. Alexander Sviridenkov I understand all that. http://capecodgunny.blogspot.com/2012/08/making-sense-of-whole-delphi-winrt-thing.html

    So much for Micro$oft educating their customer base about what can and cannot be installed on these devices.

    ReplyDelete
  3. Hmm.  Just to point out:  "Windows RT" and "WinRT" is not the same thing:  The former is the ARM based version of Windows (an OS), the latter is Microsoft's latest and greatest OS layer API that in essence aims to be a native/unmanaged replacement for the now aging Win32/C based API's that supports and unifies previous runtimes and standards e.g. .Net/Win32/COM, (i.e. it is a Runtime.)

    Allen Bauer's post was with respect to Delphi supporting WinRT (the runtime), e.g. the new Windows OS API available since Windows 8, rather than being anything to do with ARM support.  

    In short: WinRT is a runtime.  Windows RT is an OS.  Neither is currently supported by Delphi.  (For more see here: http://is.gd/fXxUXA  )

    ReplyDelete
  4. It's a paradox that Delphi can make x86 Windows apps, but not ARM Windows apps, and make ARM Android apps, but not x86 Android apps.  Perhaps they will sort it out eventually?

    ReplyDelete
  5. Lars Fosdal I thought apps on Windows RT had to use WinRT?

    ReplyDelete
  6. They do. I was just using the broadest term for Windows.

    ReplyDelete
  7. Lars Fosdal Well my point was then that in the case of Windows ARM apps, that's due to MS locking WinRT down, so not much EMB can do. 

    Lack of x86 Android is of course something else entirely, and something I'm having difficulties understanding.

    ReplyDelete
  8. True that. Why MS insists on locking in the app signing required for WinRT is a bit of a mystery.

    ReplyDelete
  9. Just to further add in case this is of interest, with apologies if I'm belaboring this too much.  :)

    /Officially/ 3rd party (meaning non-Microsoft) /apps/ on Windows RT are to target and can only hope to use WinRT, because Microsoft decided to restrict/lock down access to the Win32 API's on Windows RT to Microsoft signed apps only.  Had they not locked down the Win32 API's on Windows RT in this way, Delphi could've used these to support Windows RT as it does on Windows 8 (x86) presently.  

    It is a pity, since as I understand it, Windows RT is otherwise a faithful recompilation of Windows for ARM, and therefore includes essentially all of Windows, include the Win32 API's etc.  Exactly why they did this is (as Lars says) a bit of a mystery -- perhaps to avoid all the confusion in a desktop customer base that would try to buy and/or install ARM software on X86 and vice versa.  Personally don't think that would've been an insurmountable problem, but hey ho, I can see that may have been a concern, and I probably suffer from developer optimism here. 

    As an aside, there are apparently however ways to get around this restriction on Windows RT and actually allow third party desktop applications (e.g. apps on Windows RT using the Win32 API's) but it's unfortunately most of these are hacks -- nothing official that a product like Delphi can use.  (See for example here: http://is.gd/NALo5s)

    As for Windows RT and Delphi then, Embarcadero is actually doubly blocked: 1) Due to Microsoft making it hard/impossible for third party /dev tools/ to properly target the WinRT runtime as mentioned by Asbjørn (regardless of OS/cpu type so this applies to Windows 8 x86 as well), unless you're the C++ runtime itself on the one hand, and 2) due to them locking down/removing access for third party applications to the Win32 API on Windows RT (unless your desktop app is signed by MS). Delphi therefore has no way currently to support Windows RT. (No access to Win32 API, no way to use its effective replacement WinRT from a developer tool perspective.)

    I see however from the latest (?) Delphi roadmap that they have an entry for Windows RT/WinRT support (http://is.gd/Wju65Q) slated as "After 2014", so perhaps Lars may end up being right in that they'll eventually sort something out.  (Allen Bauer's much referenced post mentioned cage rattling at MS -- it's been 2+ years but perhaps something will come from this after all?)

    As for x86 Android support -- I have no idea why this isn't present already, apart from speculation that it probably will require some work and it's likely a very small part of the Android market, so it may be that they simply haven't gotten around to it, or aren't inclined to put the effort in.

    ReplyDelete

Post a Comment