When running the default c++ project in Visual Studios for a Windows CE 5.0 device, I get an error complaining about missing resources. Depends says that my executable needs ayghsell.dll (the Windows Mobile shell), and CoreDll.dll. Does this mean that my executable can only be run on Windows Mobile devices, instead of any generic Windows CE installation? If that's the case, how do I create an executable targeting generic WinCE?
Depends what you mean by a generic Windows CE installation. Windows CE itself is a modularised operating system, so different devices can have different modules included. Therefore each Windows CE device can have a radically different OS installed (headless even).
Coredll is the standard "common" library that gets included in a Windows CE installation, however it can contain different components depending on the other modules in the system.
If you want to target a relatively standard version of Windows CE either target the Standard SDK set of components, or go for a Windows Mobile platform.
If you have an SDK then install and use that. If none is available then you can generate an SDK using Platform Builder and the OS project files.
To get your application to work on a non-Windows Mobile installation of Windows CE you just have to remove the code that uses the aygshell library, and not link to those libraries.
Related
Target: Determine working way to publish Qt5 application in Windows 10 Store both for Windows 10 Desktop and Mobile device families.
Issue: Qt5 WinRT provides separate Qt builds for x86, x64 and armv7 platforms, where each build can auto-generate Visual Studio solution only for specific platform (qmake.exe -tp vc YourProject.pro). So it's possible to have separate .appxupload bundles (generated by Visual Studio) for x86 and armv7, but it's not possible to publish both of them in the Windows Store at the same time.
Additional info: On publishing of C# UWP application Visual Studio creates separate appx packages for all selected platforms(x86, x64, arm) and puts them into the one .appxupload package to be uploaded to the Windows 10 Store. But it looks like because qmake can't create Visual Studio project file for multiple platforms, it's not possible to use C# UWP approach.
I hope that someone already uploaded to Windows 10 Store Qt apps and can share working way of doing this with multiple platforms support.
Based on your description, Qt5 WinRT provides separate Qt builds for x86,x64, and ARM platform, when you create package for your project, you may need to select one architecture at a time, like the screenshot below.
When you have created three different platform packages, you can upload these package and select apposite devices,different operating systems can run different types of packages.
Hope it is help to you.
So far I was able to find only following solution:
It's needed to create different appxupload packages files to be uploaded into Windows 10 Store - one package for armv7 platform (where in Package.appxmanifest it's required to put target devices family as Windows.Mobile) and one package for x86 platform(where in Package.appxmanifest it's required to put target devices family as Windows.Desktop).
<TargetDeviceFamily Name="Windows.Mobile" />
Also the packages should has different application version.
Such 2 packages can be uploaded into one Submission application record at Developer Dashboard and will not conflict with each other.
In case if to try upload both packages with "Windows.Universal" as target device family, MS Store Dashboard complains that packages has similar "Neutral" platforms (even if different platforms were specified in app manifest). Also if both packages are of similar version, you will get web page error on finish of packages uploading.
In case if you will put the support of platform that is not part of the package, such submission will be failed during certification.
I haven't been able to find any information on this issue:
I have a C++ Windows Phone 8.1 library project, I would like to convert it into a portable library without having to recreate the project and set all parameters.
I guess it should be possible to do it by editing the vcxproj file, but I don't know how to modify it to make it work.
I meet several issues:
What is the equivalent of Portable Library (C#) for C++?
How to change an existing Windows Phone 8.1 C++ project into this equivalent?
Thanks :)
In general, Windows Phone 8.x doesn't support sharing of binaries with Windows desktop because the import libraries are different between the two (eg, desktop apps link against kernel32.dll but that DLL doesn't exist on Windows Phone). You could share between Windows Phone 8.0 and 8.1 though (provided you only used features available in 8.0).
In theory you might be able to make a static lib that was shared if it didn't depend on any Windows APIs, but it's not really supported. You could try creating a new Static Library project and diffing it against your current project to see what settings have changed.
This changes in Windows 10, where shared binaries are fully supported (obviously you still need ARM vs x86 vs x64 builds depending on CPU architecture).
According to Maximize code reuse between Windows Phone 8 and Windows 8 C++ is not supported as PCL language as this is a .net framework technology.
Note that Portable Class Libraries are a .NET Framework concept and don’t support C++
I also looked into Visual Studio to confirm that and couldn't find a template.
I have a cpp project, that i try to build in vs2008, for Windows CE on my car stereo.
I only have the options in vs2008 to build for Windows Mobile 6 pro or windows mobile pocket pc 5. But none of these options builds a working exe file.
When downloading a precompiled file, it works fine.
So my questinon is how do i build this project?
Which packages do i have to install, in order to have the right build options?
As already suggested by Luka the best option is to have an SDK for that specific device.
If the device manufacturer does not provide it you should at least check the CPU type and Windows CE version to try to get a compatible SDK. In this case you may reference some functions that are not actually available on the device or not being able to reference some that are actually available, but this should not prevent you from doing a build.
Is there possibility to compile windows service using only mingw c++ compiler and library?
I assume that it is possible to use compiler with Visual Studio standard library and means, but want to do to this almost fully opensourced.
Any experience?
Since you can build programs with the Windows Platform SDK (or whatever it's called today) using MinGW, you can build Win32 services.
Services are just Win32 programs with some specific protocols used to register them with the system and interact with the operating system's service controller.
Tell me.
How is executed binaries (written in c++ ForExample) in mobiles??
Is it only possible as mixed with J2ME or is it possible to execute "RAW" (like exe file) binary.
(In old and new mobiles)
Running a program on a mobile phone is like running it on a normal computer.
You have to take two things into consideration the processor that is running the phone and the OS that is running on top of the processor.
Certain phone OS's are very restrictive on what they let run on the phone so you need to read up on the restrictions imposed by the OS.
Secondly the processors are usually very limited and completely different to a normal PC so you need a compiler that will generate code for that processor.
But RAW object files are not enough C++ is dependent on a whole set of standard libraries functions and framework to start up the application. For this you will need to have the appropriate SDK for the your phone so that you can link your program with the appropriate framework that your phone OS will understand.
The last problem is getting the binaries onto the phone. Detailed instructions will usually come with the SDK.
How is executed binaries (written in
c++ ForExample) in mobiles??
There are two ways.
First, the application can consist of natively executable instructions. In a Windows CE based mobile phone, like Windows Mobile/phone, this means the PE format, which native C and C++ code is compiled and linked to.
Second, the application can be managed by a runtime environment, like J2ME for Java and the CLR for .Net CF on Windows CE/Mobile/Phone. Then the runtime environment executes PE and the application layer above, e.g., .Net CF is compiled to an intermediate language that is compiled to PE during runtime ("jitted").
Common Windows .exe are unlikely to run on mobiles out-of-the box.
The target mobile has to have a specific SDK, which will help compiling C code into native platform code.
Or, if the mobile has a common operating system, like Symbian or Windows mobile, then you need SDK and compilers for these target platforms.
I think it depends on the operating system of the mobile device. For example, if its Windows Mobile 5/6 they can use .exe files compiled with the Windows CE SDK.