Portant une application Windows-CE sur Windows Desktop
-
14-11-2019 - |
Question
J'ai pris sur une application Windows-CE 6.0 que j'aimerais porter sur d'autres plates-formes.C'est une application d'interface graphique autonome relativement simple et autonome, écrite en version 4.0 intégrée C ++.
La toute première cible que je suis intéressée serait un bureau Windows ordinaire (I.e. XP, Vista, Windows-7).
Je comprends que le portage d'une application de bureau à la CE est non pastridique;Mais qu'en est-il de l'inverse, qui est ce que je suis intéressé?Va de Windows-CE à Windows Desktop (un peu) compatible à la hausse?J'aimerais bien entendre "Achetez cet environnement de développement Microsoft XYZ C ++ de 1000 $ et compilez-vous!"
(FYI Je n'ai aucune expérience avec les applications GUI ni avec la programmation dans l'environnement Windows; prétendre que je suis un simple type Linux / Unix avec des décennies d'expérience C / C ++, mais absolument pas de fenêtres ...; -)
La solution
Porting up should, actually, be pretty straightforward. CE is mostly a subset of Win32, with heavy emphasis on Unicode.
You can probably make sure UNICODE is defined, build and, with a little luck, most of it will "just work". Places that are going to be hangups are:
- The UI is likely to be set for a resolution that doesn't match your PC - often CE apps are targeted to a specific device and resolution and this doesn't necessarily come out very aesthetic on a PC.
- Anything dynamically loaded (GetProcAddress) from coredll will have to be re-mapped to kernel32/user32/etc
- If the device uses the SIP (software input panel - i.e. on-screen keyboard) then all of that has to get stripped out.
- If the app uses any Notifications (icons, etc) that has to get replaced
- If the app uses any power management, that has to get ripped out
- If the app uses any device-specific stuff - especially direct calls to drivers, all of that has to be replaced
- If the app is using point to point queues, that has to get replaced
- If the app is using the device manager (e.g. to get notifications of copnnected devices) that has to get replaced
Any calls into aygshell.dll are likely to be problematic as well.