【问题标题】:How to Package a VC++ Win32 Console App and DLL如何打包 VC++ Win32 控制台应用程序和 DLL
【发布时间】:2011-09-06 21:45:49
【问题描述】:

我已经为它开发了一个 Win32 控制台应用程序 DLL 和一个小型测试器应用程序。据我所知,既不使用 MFC、.COM、.NET 也不使用其他任何东西。开发平台是VS2009 on WinXP/SP3

当我将 DLL 和 EXE 提供给其他人时,它们无法使用。尝试使用它们会产生类似于“应用程序无法使用,应用程序配置错误”的错误。和“找不到 xxx.dll”(这些错误消息的措辞不准确)。

我从阅读中了解到,EXE 和 DLL 必须附带一些依赖项。这些依赖似乎特定于 VS 2009 abd 应该包括 MSVCRT09 等。

当我按照 MS 的说明为安装和部署项目制作 setup.exe/MSI 安装程序时 (http://msdn.microsoft.com/en-us/library/ms235317%28v=VS.90%29. aspx)我将 dll 添加到项目中,将其移至“MyLibrary”文件夹,在解决方案资源管理器中未找到或列出任何依赖项。然而,我知道存在依赖关系,DEPENDS.EXE 这么说。

任何人都可以引导我完成此操作或使用说明命名一个更好的站点。再一次,MS 的帮助并不是那么有帮助。

谢谢,

韦斯

【问题讨论】:

    标签: visual-studio visual-c++


    【解决方案1】:

    Visual Studio 2008 是 9.0 版。正如您所发现的,使用 Visual C++ 2008 构建的程序通常确实依赖于 C 运行时库 MSVCRT09。如果目标 PC 上未安装 C 运行时库(已安装或作为安装项目的一部分),那么您的应用程序将失败,正如您所发现的。 DEPENDS.EXE 显示依赖关系也就不足为奇了。唯一的问题似乎是为什么 Visual Studio 2008 不在其解决方案资源管理器窗口中显示依赖项。

    在构建您的 Visual Studio 安装项目(MSI 和安装文件)之前,Visual Studio 可能还没有任何理由搜索依赖项。但是在构建安装项目之后,根据我的经验,解决方案资源管理器确实会显示它找到的依赖项,旁边是您明确设置的其他依赖项。如果这些在构建后没有显示出来,那就很奇怪了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 2010-11-04
      • 2013-06-19
      • 2011-03-10
      • 2012-02-02
      • 1970-01-01
      相关资源
      最近更新 更多