Forum Discussion
ChinmoyDip2007Essentially what you're after, is managed code, which is an extremely powerful feature which is part of the CLR (.NET Framework.) Ironically, a lot of people who write software, even for mobile platforms, do not use managed code, despite the fact that it was widely available in most compiler toolchains around 2005-2006 or so. It's really strange, given almost every big problem is already solved by just using managed code, even performance issues in a cross-platform setting:
"Common Language Runtime (CLR) overview
...The runtime uses metadata to locate and load classes, lay out instances in memory, resolve method invocations, generate native code, enforce security, and set run-time context boundaries."
https://docs.microsoft.com/en-us/dotnet/standard/clr
https://en.wikipedia.org/wiki/Managed_code
- ChinmoyDip2007Jul 20, 2022Copper ContributorAlthough it's available on .NET, most binaries are C++. What I mainly target is C++ for x64 apps to run in ARM PCs
- MousefluffJul 20, 2022Iron Contributor
ChinmoyDip2007It would be a very good idea to brush up on how the IDE works, how compilers work, etc. You could select a different build option, make multiple releases based on the architecture, or you could just create a UWP App (basically a containerized version of the same thing) targeting as many architectures as possible. The problem with that is sometimes it makes it a much larger download, and not everyone would want that option. Some advantages are that it's more simple to deploy / update, if it's a very small application. On a mobile device, Xamarin and the UWP is really your only choice:
"App package architectures" -> https://docs.microsoft.com/en-us/windows/msix/package/device-architecture
What you were describing earlier was really just your frustration with object code / object files (which are part of an intermediate stage before linking.) Most people will just choose a different output format for the binaries / executables, and do multiple releases of the same thing, given C++ / C#, etc, are already high-level languages:
"Understand build configurations" -> https://docs.microsoft.com/en-us/visualstudio/ide/understanding-build-configurations
"In a C++ project, the linking step is performed after the compiler has compiled the source code into object files (*.obj). The linker (link.exe) combines the object files into a single executable file." -> https://docs.microsoft.com/en-us/cpp/build/reference/linking
"Cross-platform mobile development in Visual Studio" -> https://docs.microsoft.com/en-us/visualstudio/cross-platform/cross-platform-mobile-development-in-visual-studio
"The architecture options specify the architecture for code generation. Select the base hardware architecture you're working with to see /arch options for that target platform.
/arch (x86)
/arch (x64)
/arch (ARM)
/arch (ARM64)""/arch (Minimum CPU Architecture)" -> https://docs.microsoft.com/en-us/cpp/build/reference/arch-minimum-cpu-architecture