Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ GUI without Frameworks

So as far as I understand it, there is no way to have a C++ GUI designer and ship your application as one, standalone executable. All the 3rd party frameworks add their dependencies in form of .dll-s etc., be it MFC, Qt, WTL, wxWidgets, GTK. That leaves me with only one solution - design the GUI for my current application myself using Win32 API. Are my assumptions correct or am I missing something? I've always wondered how uTorrent and some others have managed to do it. Thanks.

like image 290
astralmaster Avatar asked Mar 11 '12 10:03

astralmaster


1 Answers

No, you can statically link most of the popular GUI frameworks, including MFC, Qt, ATL/WTL, and wxWidgets. I don't know about GTK, but I assume that you probably can statically link it, too.

Statically linking means that instead of dynamically linking to the library code living in a DLL, you link that code directly into your executable, resulting in a single, standalone EXE file you can ship without any external dependencies.

But of course, those dependencies will still be there and they will still bloat the size of your executable, which may be a problem, depending on your deployment mechanism. Also, there's something to be said for programming close to the metal, so using the Win32 API directly is definitely an option. That's going to produce the absolutely smallest, lightest application possible, and probably the fastest, too. In fact, I believe this is precisely what μTorrent does (or at least, it's what they used to do several versions ago).

like image 134
Cody Gray Avatar answered Nov 15 '22 15:11

Cody Gray