【问题标题】:Portable Windows application (not the source code!) with Visual C++ 2005/2008/2010?带有 Visual C++ 2005/2008/2010 的可移植 Windows 应用程序(不是源代码!)?
【发布时间】:2011-04-07 04:03:39
【问题描述】:

我的意思不是“可移植”,你可以在 Linux 或其他什么地方重新编译源代码,而是一个不需要安装的仅限 Windows 的应用程序,所以你只需将 .exe 和一些dll-s 在一个文件夹中,然后将其复制到另一台机器上,它就可以工作了。

在 VS 2003 及更早版本中根本不需要任何努力,但在 2008 中将丢失的 dll-s 放入同一文件夹中不起作用,它需要安装可再发行组件。我记得听说过这个问题可以通过清单来解决,这是我以前从未遇到过的。

那么,我该怎么做呢?

【问题讨论】:

  • 为了以后参考,人们常称其为“xcopyable”或“xcopy deployable”

标签: windows visual-studio visual-c++ backwards-compatibility binary-compatibility


【解决方案1】:

与 CRT、MFC 和您使用的任何其他东西的静态库链接。确保您不使用在 Vista 或 Win7 中引入的 Win32 API(即,保持 WIN32_WINNT Dependency Walker 确保您的可执行文件仅导入 kernel32、user32、gdi32 或其他保证在默认 Windows 安装中的内容。

【讨论】:

    【解决方案2】:

    静态链接 c 运行时怎么样?您生成的可执行文件会更大。

    【讨论】:

      【解决方案3】:

      还可以查看所有感兴趣的 Windows 版本的向后二进制兼容性报告:https://abi-laboratory.pro/index.php?view=windows

      并检查您的二进制文件/dll 是否导入任何已删除/更改的符号。

      报告已由 abi-compliance-checker 工具生成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-10
        • 2019-02-03
        • 1970-01-01
        • 2010-10-24
        • 1970-01-01
        • 2014-01-06
        • 1970-01-01
        相关资源
        最近更新 更多