Curious if anyone has experience making apps for Windows 10 using platforms like Win32, WPF, or UWP. I have never created an app before, and I only really know c++, but it’s actually been a while since I used it, and I thought wanted to get back into it. So in my spare time I wanted to make an app that I would be able to use at work to make my job simpler (it’s all Windows at my work btw).
However, looking into the application development scene it seems very convoluted. Win32 looks like the old school (still works though), WPF looks like a common standard for a while now but that is c# based not c++ (I have no interest in c#), and UWP looks like the new standard, but is a mess, the docs have been horrible to read through (There is a mix of partial documentation on c++/cx, c++/WinRT, XAML, WinUI, and some of it on MSDN is outdated and no longer correct).
I’m leaning towards Win32 because even though its old and the documentation is old, it still works and is based on c and c++.
If any of you have experience with this I would appreciate your input.
If you only want to target windows, then C# is the way to go today. But if you are set on only using C++, I guess you are stuck with Win32
I used to do a lot of windows programming back in the day with c++ and Win32. Its not that complicated when you have the basics done. But it is a lot of code for even simple stuff.
I would recommend some kind of UI library. I myself use wxWidgets or QT. Both are crossplatform, so if you want to do something that works on windows, linux and osx, its quite easy. Not sure if MFC is still supported by Microsoft, but that was the UI library for C++ on Windows, quite easy to work with if you have visual studio.
Thanks for the input, part of the reason I don’t want to bother with c# is because I also wanted to use the app building as sort of a refresh on c++, since I haven’t done it in a while. I guess Win32 is what I’ll go with; I’ll try wxWidgets as well.
I do wish UWP was better documented or had more learning resources (that aren’t outdated) since it supports c++, but I guess it still in volatile state right now. Have you/do use(d) UWP?
If you only need to target 1903 and later, you can use the new xaml controls in your old win32 apps with xaml islands: Host UWP XAML controls in desktop apps (XAML Islands). And there are some example apps on github: https://github.com/microsoft/Xaml-Islands-Samples
Modernize your desktop apps is a current overview on adopting some of the modular UWP features into win32 apps.
And on the new “classy” projection for UWP, C++/WinRT the docs are thorough: https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/
Kenny Kerr’s blog, https://moderncpp.com/, does a pretty good job of documenting the evolution of the C++/WinRT header library from it’s beginning as his directX helper headers to their official inclusion in the SDK.
But overall, the reference material is probably going to stay a “mess” as long as UWP is in a state of flux. But they have come a long way from WRL being your only native option.
It’s too bad they couldn’t have justed started back in windows 8 with the new framework being modular and available, but it’s good they are finally getting there.
Thanks, I’ll check out some of the links you posted.
Perhaps the docs for UWP are thorough, I guess I never really made it too far into them, I have been to the doc page you posted numerous times, their sample project failed to build out of the box (I did get it working) and their tutorial uses an example with a phone emulator software which after doing some digging they list elsewhere as deprecated. I still haven’t gotten their “A simple C++/WinRT Windows UI Library example” to compile. So I was not impressed to say the least.
Maybe I just picked a bad time to get into this stuff, or maybe I’m just confused by all the changing options and different opinions online. Hopefully, it’ll get easier. Thanks for the input.