[Iup-users] I figured it out, finally
Brought to you by:
scuri
From: Anonymous <ano...@gm...> - 2023-09-27 15:45:53
|
Hello everyone, I left Windows for good in Feb of this year. I want nothing to do with Windows (or Microsoft) ever again. So ... I moved over to Linux, which wasn't as easy as it sounds. First off, there is no reliable help in the Linux community, especially for assembly language issues. I used to program IUP for Windows using GoAsm, and that worked very well. Then I tried to program IUP for Linux in assembly, and that didn't go so well. The next step was to translate all my Windows assembly code to Linux using NASM. Did you know that NASM has no macro support for any ABI for any OS? So either you use NASMX or you make your own. I didn't like their NASMX solution (which doesn't appear to be supported anymore anyways) and created my own Linux macros ... and you know what that means? It means troubleshooting time! I was able to get that working but the problem was that I couldn't get my program to assemble because of so many missing dependencies. In Windows if you are missing a dependency, it gives you a message telling you in plain English exactly which dependency is missing. In Linux it doesn't tell you anything except a generic message that it doesn't work. After some trial and error, I found a very inconvenient way to determine the dependencies, but a new problem was that although it would compile, it wouldn't run. My programs all crashed at gtk_init. It turned out the Internet was useless for looking up solutions to problems (although surprisingly, DuckDuckGo was a much better help than Google was for doing that), and the Linux forums were very hostile and most didn't know anything about 64-bit asm programming anyways. I was completely all by myself with this. That's when I decided I needed to experiment with something simpler. My first experiment for that was with NAppGUI (https://nappgui.com/en/home/web/home.html) -- which is a really, really good GUI framework -- but once again, I couldn't get any of my programs to run without crashing, and Linux never gave me any clues as to why. Because IUP and NAppGUI both linked to GTK to render their GUIs, I decided to go bare bones and program with GTK directly. That's when I discovered a few very subtle bugs in my macros, and a few undocumented features in GTK (for example, gtk_init requires **argv and not *argv as everyone else uses for its parameters). Well now everything works as expected but since programming with GTK directly was so much easier and just as powerful as IUP or NAppGUI, I decided I am going to stick with GTK, especially since I have no plans ever of supporting anything to do with the Windows monopoly anyways (but even if I did, GTK has a version for Windows). Therefore I am leaving IUP for good. IUP worked really well for Windows, but it isn't all that great for Linux. So Goodbye, Andres |