在我的应用程序中可以免费使用VCL或MFC吗

Is VCL or MFC free to use in my application?

本文关键字:VCL MFC 免费 应用程序 我的      更新时间:2023-10-16

这里的"免费"意味着无需购买任何许可证。

据我所知,VCL来自Borland C++Builder,它是一个商业IDE。MFC属于Microsoft Visual Studio。

如果我没有购买BCB或MSVS的任何许可证,我可以编译这两个库的头文件并将它们链接到我自己的应用程序(免费应用程序,无商业用途)吗?

我问这个问题是因为BCB和MSVS都有免费版本。BCB编译器是免费的,MSVS Express是免费的。

我还发现一篇文章告诉人们如何在MSVS Express中编译MFC:http://www.codeproject.com/Articles/30439/How-to-compile-MFC-code-in-Visual-C-Express

它使用了来自DDK的旧版本MFC。

==摘要===

  1. 如果我没有购买BCB或MSVS的任何许可证,我可以通过编译和链接MFC或VCL来在我自己的非商业应用程序中使用它们吗?

  2. 如果第一个问题的答案是肯定的,就像文章说我们可以在DDK中找到MFC4.2一样,我可以在免费的SDK中找到VCL头和lib.dll吗?

===更多解释(已编辑)===

这个问题不仅仅是关于重新分发的问题,因为一开始我想为自己编译一些代码。之后,我可能想发布二进制文件。让我的问题更直接:

因为我必须使用MFC/VCL头&lib编译我的项目,我可以合法地获得这些文件而不支付任何许可费吗

在我上面提到的文章中,MFC4.2可以在DDK中找到。我认为这可能是一种合法的方式。也许我可以在Platform SDK中获得更高级别的MFC头和库。但是我在哪里可以得到VCL头/lib,我完全不知道,如果我找到了一些来源,我也不知道这是否合法。

(再次编辑)

根据paulsm4的回答,Wine说:

"首先,您必须合法地在计算机上获取MFC源代码。MFC源代码是Visual Studio的一部分。Visual Studio的许可证意味着它是一个单一的产品,不能分解为其组件。因此,在系统上获取MFC最干净的方法是购买Visual Studio并将其安装在双启动Linux上。"(http://www.sdconsult.no/linux/wine-doc/mfc-legal-issues.html)

VCL也有同样的情况吗?

(最终编辑)

根据David M的回答,VCL也是同样的情况

但您可以使用"Turbo C++Builder 2006 Explorer",它包含一个VCL lib/标头,并且是免费的。遗憾的是,官方网站将不再提供这个免费版本。

如果我没有购买BCB或MSVS的任何许可证,我可以编译标题吗这两个库的文件,并将它们链接到我自己的应用程序(免费应用程序,无商业用途)?

答案很长

不一定免费/非商业性并没有什么区别。这些库归Embarcadero和Microsoft所有,并在特定条件下授予您许可。每个条件不同:

VCL:引用我的RAD Studio 2010安装文件夹中的"deploy_en.htm"

2.2 Embarcadero运行时包

根据最终用户许可协议的条款("EULA"),标题为"适用于已编译程序和Redistributables,"您可以重新分发Embarcadero提供的运行时仅用于实施工程的包(定义见EULA)。您不能在中修改这些程序包无论如何。

我将其解释为您购买了C++Builder,从而获得了重新分发这些特定软件包的许可如果您没有购买C++Builder的副本,正如您所说的那样,您将不会获得使用这些软件包的许可

有一个免费的C++Builder 5编译器和RTL的副本(请注意,这是非常古老的,大约在1999年左右。)因为它是免费的,并且包括RTL,所以你可以链接并使用这些库。

MFC:这略有不同。MFC可重新分发文件是免费下载的,但这并不意味着你可以自己重新分发它们。例如,Wine要求最终用户下载并安装库。

微软关于重新分发Visual C++文件的页面上说,

如果这些文件中的任何一个是由Microsoft[edit:哪个MFC是!]提供的,请检查您是否允许重新分配。要查看允许的文件列表,请参阅..中的Redist.txt。。\上的Microsoft Visual Studio 10.0\文件夹安装Visual Studio的计算机。查看Microsoft软件许可条款,请参阅Visual Studio 2010上的Eula.txt安装介质。

我没有安装VS的副本来检查EULA的内容,但可以合理地假设,您必须拥有Visual Studio的许可副本才能合法使用库。请注意,您可以获得Visual Studio的基本("express")版本的免费许可证,尽管Visual C++express 2010不包括MFC,但它可以下载,而且据我所知,对它创建的EXE没有任何限制。

简短回答

这样想:这些公司销售这些产品。为什么你希望能够免费使用该产品的一部分?

这里要小心。如果您有适用的许可证(例如包含MFC的VS版本附带的许可证),MFC可以以二进制形式自由重新分发。如果你从旧版本的DDK中获得MFC,你可能有权也可能没有权重新分发它(那个版本);这将取决于您使用该版本DDK的许可证及其条件。

MFC的发布版本有免费的可再分发包(你可以从MS的网站IIRC下载),但只有当你的代码针对这些库工作时,这才对你有用。

话虽如此,MS不太可能因为发布依赖MFC的应用程序而对任何人穷追不舍,尤其是如果它使用MFC的标准可再发行文件。不过,具体到法律上,这取决于您使用MFC的许可证允许的内容。

Q: 在我的应用程序中可以免费使用VCL或MFC吗?

A: "是"answers"是"

软件警察不会因为你使用Delphi VCL或Microsoft MFC分发任何应用程序而逮捕你。

他们可能会因为重新分发而让你破产。。。但是,如果你向客户发布二进制文件(或者发布自己的源代码,而只是将引用到DelphiUnits/Microsoft头文件),你为什么要这么做?

以下是有关MFC的更多详细信息:

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