Windows API DLL文件的许可证文件 [英] License file for Windows API DLL files
问题描述
我的朋友正在准备分发他的软件,并希望清理他使用的软件的许可证。他的策略是收集提供许可证文本的所有文件。
My friend is currently in preparation of distributing his software and wants to cleanup on the licenses of software he uses. The strategy is that he collects all the files that provides the licensing text.
他收集了所有明显的许可证,例如Qt库的Qt许可证使用。但是,他还使用Windows附带的一些Windows DLL,例如 kernel32.dll
和 advapi32.dll
。
He finished collecting all the "obvious" licenses, such as the Qt license of the Qt libraries he uses. However he also uses some of the Windows DLLs that come with Windows, such as kernel32.dll
and advapi32.dll
.
他可以在哪里找到许可证文件,以便他可以用他的软件发布它?第一个DLL文件 kernel32
似乎根据 http://en.wikipedia.org/wiki/Auto-linking 指令。第二个文件 advapi32.dll
明确链接到他的软件,他想通过收集提供许可证的文件来清理该文件的情况。
Where can he find the license files so that he can publish it with his software? The first DLL file, kernel32
appears to be automatically linked to his software based on an http://en.wikipedia.org/wiki/Auto-linking directive. The second file, advapi32.dll
is linked explicitly to his software, and he wants to cleanup the situation of that file by collecting the file that provides the license.
对于debian linux,他知道这些文件在 / usr / share / doc /<图书馆> / copyright
。
For debian linux for example, he knows that the files are below /usr/share/doc/<package of the library>/copyright
.
推荐答案
不是一个选项,分发这些Windows组件无法正常工作。不同的Windows版本具有非常不同的这些DLL的实现。即使具有相同版本的计算机也可能具有不同的DLL版本,这些运行时组件通常由Windows Update更新。强制覆盖它们通常是灾难性的,但是Windows中的文件系统保护功能会恢复损坏。
Not an option, distributing those Windows components cannot work. Different Windows versions have very different implementations of these DLLs. Even computers with the same version may have different DLL versions, these runtime components are often updated by Windows Update. Forcibly overwriting them would be normally disastrous, but the File System Protection feature in Windows recovers the damage.
根本不需要分发这些DLL。每个Windows机器都有它们,以及来自Microsoft的坚定承诺,只要程序员在他的代码中正确设置了_WIN32_WINNT宏,它们将与程序兼容。它选择了他选择支持的最低版本的Windows版本,它防止意外地依赖仅在稍后版本中使用的winapi函数。弄错了,只是阻止程序启动。
There simply is no need to distribute these DLLs. Every Windows machine already has them, along with a solid promise from Microsoft that they will be compatible with the program as long as the programmer set the _WIN32_WINNT macro correctly in his code. Which selects the minimum Windows version that he chooses to support, it prevents accidentally taking a dependency on winapi functions that are only available in later versions. Getting that wrong simply prevents the program from starting.
这篇关于Windows API DLL文件的许可证文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!