Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 586 Vote(s) - 3.47 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Framework for a C++ application

#1
I want to create a **standalone** C++ desktop application which will be **close-source**, **commercial** and will **not require** the user to have the required **DLLs in the machine**.
It has, at least, to work for **Windows**. If it can be built for all platforms, that would be awesome.

This means I do not want the application to use the .NET Framework and all required DLLs must be shipped with the (only) executable the client will download.

I found and tested a dummy MFC application, it seems possible to do everything I require, but every comment I hear about MFC is that it is bad designed, about to be obsolete, bad choice, hard to use, etc etc etc.
I see lots of people recommend Qt, but I read that I can't ship the library unless I pay a commercial license, or the application has to be open-source.
wxWidgets, from what I read, seems to follow the same bad design of MFC.
However, many of the comments I read seem to be for years ago. It seems that Qt has changed its license, so something may have changed in the meanwhile.

**If you were me and had these requirements, what framework/library would you pick and why?**
Reply

#2
> I see lots of people recommend Qt, but I read that I can't ship the library unless I pay a commercial license, or the application has to be open-source.

This is wrong. Qt is available under the [LGPL license](

[To see links please register here]

), which means you absolutely can ship your application closed-source, as long as you provide a way for the end-user to be able to modify/update the Qt dependency. Typically this means using a shared Qt library and deploying the DLL files with your application, so that the end-user can replace the DLL files if they wanted to. However it is also possible to link statically in which case you must provide a way for your end-users to re-link it. This means that you'd have to ship compiled code (object files) with your application as a minimum. Note: I'm not a lawyer, and you should thoroughly investigate the license terms yourself before you make any decision.

> However, many of the comments I read seem to be for years ago. It seems that Qt has changed its license, so something may have changed in the meanwhile.

As far as I can tell, Qt added LGPL as one of the available licenses in version 4.5 which was released in March 2009. So yes, those comments are almost 4 years out of date.

**Note:** Apart from the specific points I've addressed, it is hard to answer your question more generally for two reasons - (1) this site considers posts asking for recommendations to be off-topic, and (2) you've said, *"if you were me and had these requirements, what framework/library would you pick and why"*, but you haven't actually said what those requirements **are** - it seems apparent that you want the library to be able to do GUIs, but what else? There are many different frameworks and libraries for C++ and they all do different things.
Reply

#3
MFC is alive and well and will meet your requirements. I (still) use it frequently. If your app GUI is basic and does not need most of the MFC features then ATL would be a very good choice. Both MFC and ATL can be statically linked so no DLLs need to be shipped with the app.
Reply

#4
Have a look at these:

[To see links please register here]


Maybe SmartWin++?

[To see links please register here]


Cheers
Reply

#5
I really don't see what's the problem with Qt. I agree with what [JBentley said](

[To see links please register here]

) - it implies that it would be in fact a good choice if you're looking for a modern framework. Qt offers much more functionality than MFC.

There is no problem shipping commercial, closed-source, **statically linked** applications that use Qt. Been there, done that, and it works just fine. Single `.exe` is all you provide. I'm not a lawyer, but generally what you need to provide *on request* is a static `.lib` file generated from your code's object files, so that it can be re-linked by the end user with their own copy of Qt.

There's nothing bad about that from a commercial standpoint -- if you can't afford the cost of a commercial Qt license, the requirement to make a `.lib` file if your compiled closed-source code shouldn't be a big deal. Make it a part of your build process, so that it's not an extra burden. You don't need to distribute this `.lib` file, just provide it on request. It doesn't have to be recompiled for the requester's platform or anything like that - whatever compiler you use to compile Qt and your application is all you need.

If one is serious about it, one will ask an IP lawyer to explain the implications of the licensing terms of any software you intend to redistribute with one;s product. So it doesn't matter if it's Qt or MFC, **one goes and asks a lawyer**. It's not like somehow LGPL implies "go to a lawyer", but a possibly much more complex Microsoft license doesn't. Unless one's stance is that it's OK to ignore MS licenses, but not OK to ignore FSF licenses :/
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through