Most of the software I write
is Windows only, but there are a lot of people who want it to run on MacOS as well. I ported irrKlang
to Mac OS X some time ago, but it's only a software library and not an application, so I didn't have that much experience when I thought it would be a good idea to port the irrfuscator frontend
to Mac. Unfortunately, that program was written in MFC, basically a set of classes wrapped around the Win32 API. The irrFuscator frontend looked like this:
And if you know a bit of the internals of the MFC, Microsoft made it really hard to port code using this framework to another operating system. But after some few days, irrFuscator looked like this:
It finally ran and worked on Apple's operating system, yay! So, how did I do that?
Basically, I didn't port the MFC application at all. I stripped out every MFC dependency and replaced it with wxWidgets
, a free and open source cross platform UI library. The API of wxWidgets is very similar to the MFC, so this was quite easy, and I was able to port every feature of the frontend to wxWidgets surprisingly without much effort. The result was a code based on wxWidgets which compiles both with gcc/XCode and with Microsofts VisualStudio, which is great: Only one codebase to maintain for bug fixes, new features, etc.
So I can really recommend wxWidgets for crossplatform application development. You can try out both versions of irrfuscator here
, if you are interested.