Is VCL or MFC free to use in my application? [closed]

不羁的心 提交于 2020-02-03 12:13:55

问题


Here 'free' means no need to buy any license.

As I know VCL comes from Borland C++ Builder which is a commercial IDE. MFC belongs to Microsoft Visual Studio.

If I didn't buy any license of BCB or MSVS, could I complie the header files of those two libs and link them to my own application(free app, no commercial use)?

I asked this because both BCB and MSVS have the free version. BCB compiler is free and MSVS Express is free.

I also found an article tell people how to compile MFC in MSVS Express: http://www.codeproject.com/Articles/30439/How-to-compile-MFC-code-in-Visual-C-Express

It used an old version of MFC from the DDK.

==Summary==

  1. If I didn't buy any license of BCB or MSVS, could I use MFC or VCL in my own non-commercial application by compiling and linking them?

  2. If the answer to 1st question is YES, just like the article said we can find MFC4.2 in DDK, could I find a VCL header and lib/dll in a free SDK?

==More Explanation (Edited)==

This question is not only about the redistributing problem because at first I want to compile some code for my self. After that I may want to release the binary. To make my question more direct:

Because I have to use MFC/VCL header & lib to compile my project, could I got these files legally without pay any license fee?

In the article I mentioned above, MFC4.2 can be found at DDK. I think this might be a legal way. Maybe I can got higher level MFC header and lib in Platform SDK. But where could I get VCL header/lib I totally have no idea and I don't know whether this is legal if I did find some source.

(Edit again)

From paulsm4's answer, Wine said:

"First you must legally get MFC source code on your computer. The MFC source code comes as a part of Visual Studio. The license for Visual Studio implies it is a single product that can not be broken up into its components. So the cleanest way to get MFC on your system is to buy Visual Studio and install it on a dual boot Linux box." (http://www.sdconsult.no/linux/wine-doc/mfc-legal-issues.html)

Is VCL the same situation?

(Final Edit)

From David M's answer, VCL is the same situation

But you can use "Turbo C++ Builder 2006 Explorer" which contained a VCL lib/header and it's free. Sadly the official site will not provide this free version anymore.


回答1:


If I didn't buy any license of BCB or MSVS, could I complie the header files of those two libs and link them to my own application(free app, no commercial use)?

Long answer

No, not necessarily. Free / non-commercial doesn't make a difference. The libraries are owned by Embarcadero and Microsoft and are licensed to you under certain conditions. The conditions are different for each:

VCL: To quote from 'deploy_en.htm' in my RAD Studio 2010 installation folder,

2.2 Embarcadero Runtime Packages

In accordance with the section of the End-User License Agreement ("EULA") entitled "General Terms That Apply to Compiled Programs and Redistributables," you may redistribute Embarcadero-supplied runtime packages only for the purpose of executing Works (as defined in the EULA) created with the product. You may not modify these packages in any way.

I interpret this as your purchase of C++Builder giving you a license to redistribute those specific packages. If you have not bought a copy of C++Builder, as you say you have not, you would not be licensed to use those packages.

There is a free copy of the C++ Builder 5 compiler and RTL available (note this is very old, circa 1999 or so.) Because it is freely available and includes the RTL, you could link to and use those libraries.

MFC: This is slightly different. The MFC redistributables are freely downloadable, but that doesn't mean that you are able to redistribute them yourself. Wine, for example, requires that the end user download and install the libraries.

Microsoft's page about Redistributing Visual C++ Files says,

If any of these files are provided by Microsoft [edit: which MFC is!], check whether you are permitted to redistribute them. To view a list of permitted files, see Redist.txt in the ..\Microsoft Visual Studio 10.0\ folder on the computer where Visual Studio is installed. To review the Microsoft Software License Terms, see Eula.txt on the Visual Studio 2010 installation media.

I don't have a copy of VS installed to check what the EULA says, but it's reasonable to assume that you must have a licensed copy of Visual Studio in order to legally use the libraries. Note that you can get free licenses of basic ("express") editions of Visual Studio, and though Visual C++ Express 2010 does not include MFC it can be downloaded, and as far as I know there are no limitations on what you can do with the EXEs it creates.

Short answer

Consider it this way: these companies sell these products. Why would you expect to be able to use a part of that product for free?




回答2:


Careful here. MFC is free to redistribute, in binary form, if you have an applicable license to do so, such as the one which comes with the versions of VS which contain MFC. If you're getting MFC from an old version of the DDK, you may or may not have the right to redistribute it (that version); it would depend on the license under which you're using that version of the DDK, and its conditions.

Release versions of MFC have free redistributable packages (you can DL from MS's site, IIRC), but that will only work for you if you code works against those libraries.

That being said, it's unlikely MS would go after anyone for distributing an app which relied on MFC, especially if it worked with the standard redistributables for MFC. To be legally specific, though, it depends on what the license under which you're using MFC allows.




回答3:


Q: Is VCL or MFC free to use in my application?

A: "Yes", and "yes"

The Software Police won't arrest you for distributing any application using either Delphi VCL or Microsoft MFC.

They could bust you for redistributing source ... but why would you do that, if you're releasing a binary to customers (or publishing your own source code, that merely refers to Delphi Units/Microsoft headers)?

Here are more details on MFC:

http://www.sdconsult.no/linux/wine-doc/mfc-legal-issues.html



来源:https://stackoverflow.com/questions/9595720/is-vcl-or-mfc-free-to-use-in-my-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!