在我的应用程序中可以免费使用VCL或MFC吗
Is VCL or MFC free to use in my application?
这里的"免费"意味着无需购买任何许可证。
据我所知,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。
==摘要===
-
如果我没有购买BCB或MSVS的任何许可证,我可以通过编译和链接MFC或VCL来在我自己的非商业应用程序中使用它们吗?
-
如果第一个问题的答案是肯定的,就像文章说我们可以在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
- C++ MFC Libraries in Travis CI
- 从 bmp 文件数据创建 MFC CBitmap
- 如何在 MFC 中显示文件的所有行
- 目录删除 MFC 的问题
- MFC:如何设置CEdit框的焦点?
- MFC 中的抗锯齿
- 双击更改 mfc 中列表控件中的行的颜色
- C++MFC编辑框处理双击
- C++ MFC CObject 派生类摘要?
- 如何在 MFC 对话框中使用 OnDraw
- 在 1 个服务器 n 客户端套接字 C++ MFC 应用程序中更新数据的客户端
- MFC:你能在CDateTimeCtrl中改变自旋的加速度吗?
- MFC:我们如何轻松地从CTreeCtrl切换到CTreeView?
- 如何在组合框中列出所有可用的 VCL 样式,并在组合框更改事件中应用该样式C++生成器?
- 将 Vcl::Controls::TCaption aka (System::UnicodeString) 转换为 co
- __int64 CString 返回错误的值 - C++ MFC
- 如何在MFC中的静态文本控件上插入图标?
- 使用 MFC 的表/网格
- MFC 中的窗口消息管理:添加基类调用是否是强制性的?
- 在我的应用程序中可以免费使用VCL或MFC吗