AKN*_*AKN 5 dll mfc visual-studio visual-c++
当我们使用Visual Studio(VC8或9)创建DLL时,我们得到一个选项作为创建常规DLL
using MFC as shared DLL
Run Code Online (Sandbox Code Playgroud)
要么
using MFC as static library
Run Code Online (Sandbox Code Playgroud)
他们有什么不同?哪一个是可取的?
And*_*lam 12
静态库意味着您在库中使用的代码包含在可执行文件中.因此,您无需运送库或要求最终用户将其置于其计算机上.但是,这会膨胀您的可执行文件的大小并将您绑定到该库版本,因此如果您只需要更新库,则必须发送新的可执行文件.
共享库在需要它(运行时)时调用库来执行代码,但它要求用户在其机器上安装它(通常是特定或最小版本).如果需要,您还可以使用您的应用程序分发所需的库版本.
至于哪个更好,我不知道.我不是Windows C++或MFC程序员,所以我不能说.在我的Linux服务器上,我编写的应用程序通常是服务器端,因此使用共享库.
这取决于您的应用程序的使用,分布,更新,MFC库更改的频率,如果它通常在用户的PC上可用等.
[我想我现在得到了答案]
如果您使用 MFC DLL 作为动态链接,您的代码将需要在用户端与您的应用程序或 dll 一起安装 Microsoft 基础库 DLL(特别是您的代码所需的版本)。所以这意味着你的安装包将包含
这使得安装包的大小变得更大,也使用户需要时间来下载您的安装设置。
如果您将 MFC 作为静态库链接,即使用户端没有 MFC DLL,您的代码也能正常工作。原因很简单,您在代码中引用的所有 MFC 库都将链接到您的应用程序或 dll。这意味着在您的应用程序/dll 中使用的那些 MFC 库将成为您的二进制文件的一部分;但是,您的应用程序/dll 会大一点。
| 归档时间: |
|
| 查看次数: |
13841 次 |
| 最近记录: |