【问题标题】:How to make sure that my direct3d application will run everytime on any PC如何确保我的 direct3d 应用程序每次都能在任何 PC 上运行
【发布时间】:2016-05-12 21:44:21
【问题描述】:

我制作了一个应用程序,它利用 Microsoft 的 Directx9 作为图形 API,它在我的计算机上运行良好,但在其他计算机上,它主要要求提供 msvcrt 和 d3d 运行时相关的 dll。那么,我如何确保我的应用程序在每次有人不知道 vcrt 或 directx 是什么的人执行它时运行?我是否为我的应用程序提供运行时包?虽然这对于 2MB 的应用程序是不可行的。怎么办?

【问题讨论】:

  • 您的应用程序大小不是 2MB。它是 2MB 加上您正在使用的所有 3rd 方库的大小。如果您不希望用户喜欢您的应用程序,您也可以分发应用程序的任意一小部分。如果您确实希望您的用户喜欢您的应用程序,则需要完整地发布您的应用程序。
  • Documentation 是你的朋友

标签: c++ winapi directx


【解决方案1】:

正如 Nicol Bolas 在下面指出的那样,必须在用户计算机上安装 DirectX(和 Visual C++),他们才能使用您的应用程序。

我之前建议捆绑DirectX Web Installer,因为它非常小,但正如罗斯里奇所说,这可能不是分发 DirectX 的合法方式。 Microsoft 建议使用 not bundle the Web Installer,但请改用可再发行包:

始终安装 DirectX,并静默安装

强烈建议游戏静默安装DirectX 游戏建立时所针对的可再发行产品。 DirectX 安装过程被设计成可以验证是否有任何东西 需要更新并快速返回,如果没有。所以,没有 需要询问用户是否要安装 DirectX。一个沉默 DirectX 的安装可以通过从您的 安装包:dxsetup.exe /silent

询问用户是否要安装 DirectX 可能会导致很多问题。 例如,如果用户假设他拥有最新的可再发行 已安装并选择跳过安装 DirectX;安装 无论如何,游戏可以继续成功。但是,如果游戏 需要特定版本的 D3DX,或其他更新的功能 那被跳过了,那么游戏将无法运行,并且用户将非常 沮丧。

所以请按照 Microsoft 的建议进行操作,并将可再发行组件添加到您的应用程序中。

另外,不要忘记包含任何可再分发到您的应用程序的许可协议。这些协议必须在安装前由用户出示并接受。

【讨论】:

  • @user3696177:所以您不想将用户需要的东西与您的应用程序一起分发。而且您不希望他们必须安装它。那么...你想要什么?对于您的程序需要通过magic 出现在用户系统上的内容?必须安装东西才能使 D3D 工作。因此,要么您的用户安装它,要么您的应用程序的安装程序安装它。或者你的程序不起作用。
  • 好的,我应该分发哪些文件以确保我的应用程序运行?对于 directx 9 和 10
猜你喜欢
  • 2020-10-15
  • 2020-08-13
  • 2019-11-12
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
相关资源
最近更新 更多