3 ms·
It's probably not OP's code itself but usage of UWP. The apps you mentioned here are all written in pure Win32 API. HWND, HANDLE, HPEN, HDC, anyone? Just pure C
by legends2k 7y ago
It's probably not OP's code itself but usage of UWP. The apps you mentioned here are all written in pure Win32 API. HWND, HANDLE, HPEN, HDC, anyone? Just pure C (or pure C++) and some functions... Those were the days!
- tluyben2 7y agoOur hardware tooling is all written in C++/Win32 and some MFC; it’s all tiny and light. Because factory controlling computers are (unfortunately imho but what can I do) older Windows versions (for us that is due to certification etc mostly) on weak but robust systems with little memory that need to run for years without issues/crashes. So lean, fast software, tested for memory leaks which can be restarted in very short times (downtime of the production line is expensive) is important.
- vbezhenar 7y agoUnfortunately those APIs seems to be kind of obsolete nowadays. All the nice things are with UWP. I think that WinAPI is not even hardware accelerated. That's a pity, but what can we expect, when Microsoft themselves botched WinAPI in their own products long ago. Windows could be so better with their old Windows 2000 style, without all those design jumps around.
- legends2k 7y agoYou can do hardware accelerated stuff atop WinAPI; many, sadly, don't seem to know it. WinRT, is exactly for that; it's the distillation of UWP, which can be used in a simple Win32 app [1] e.g. The modern, hardware-accelerated API for compositing on Windows is Visual Layer (available under `ABI::Windows::UI::Composition`) [2]; it can be used from a Win32 app written in pure C++ [3] and the C++/CX language extension is unneeded. [1]: https://en.wikipedia.org/wiki/C%2B%2B/WinRT https://en.wikipedia.org/wiki/C%2B%2B/WinRT [2]: https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/visual-layer-in-desktop-apps https://docs.microsoft.com/en-us/windows/apps/desktop/modern... [3]: https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/using-the-visual-layer-with-win32 https://docs.microsoft.com/en-us/windows/apps/desktop/modern...
- badsectoracula 7y agoWhat nice things are with UWP? I haven't seen any UWP application i'd consider "nice" :-P. And IMO WinAPI not being hardware accelerated (although i think some parts of it, like filling and blitting, are hardware accelerated) isn't really a big issue - if anything, requiring hardware acceleration from you UI might be a hint that you are making it a bit too flashy. But that might be me preferring plain and compact UIs like those made with Win32 as opposed to website/mobile-like stuff.
- userbinator 7y agoMicrosoft itself doesn't think so highly of UWP now: https://news.ycombinator.com/item?id=19883351 https://news.ycombinator.com/item?id=19883351
- vbezhenar 7y agoOh, thanks, that's nice to know, I missed that. I always liked WinAPI style and I hope that it'll reborn.
- badsectoracula 7y agoFWIW Total Commander's EXE and DLLs are around 8MB (the installer is 4.2MB) and uses around 6MB of RAM right now (for comparison, the new UWP Calculator uses 18MB of RAM). It is not written in pure C/C++ nor uses Win32 directly but instead it is written in Object Pascal/Delphi or Free Pascal/Lazarus (depending on the version you use) and uses VCL or LCL (well, it probably does use some Win32 directly too). Also runs on any Windows PC from Win95 to Win10. I mention this because Delphi and Lazarus are quite high level environments to work with with rich frameworks and libraries yet you can create very lightweight applications with them (the executables will be a bit fat compared to what you can do with pure C/C++ or even pure Free Pascal, especially with Lazarus, but resource consumption is still low). You do not need to use C/C++ with pure Win32 API to create lightweight applications and even if you use those there are frameworks that allow for easier development (e.g. WTL, Win++ or libui to mention some).