如何确保我的 direct3d 应用程序每次都能在任何电脑上运行
How to make sure that my direct3d application will run everytime on any PC
我做了一个利用微软Directx9作为图形API的应用程序,它在我的电脑上运行良好,但在其他电脑上,它要求dlls主要是msvcrt和d3d运行时相关的。那么,如何确保我的应用程序每次执行时都运行,而没有人知道vcrt或directx是什么?我是否随应用一起提供运行时包?尽管对于2MB的应用程序来说是不可行的。 怎么办?
正如 Nicol Bolas 在下面指出的那样,必须在用户计算机上安装 DirectX(和 Visual C++(,他们才能使用您的应用程序。
我之前建议捆绑DirectX Web Installer,因为它很小,但正如Ross Ridge所提到的,这可能不是分发DirectX的合法方式。Microsoft建议不要捆绑 Web 安装程序,而是改用可再发行组件包:
始终安装 DirectX,并以静默方式安装
强烈建议游戏静默安装 DirectX 游戏所针对的可再发行组件。The DirectX 安装过程的设计使其验证是否有任何东西 需要更新,如果没有,请快速返回。所以,没有 需要询问用户是否要安装 DirectX。一个沉默的 DirectX 的安装可以通过从您的 安装包:DXsetup.exe/silent
询问用户是否要安装 DirectX 可能会导致许多问题。 例如,如果用户假定他具有最新的可再发行组件 已安装并选择跳过 DirectX 的安装;安装 无论如何,游戏都可以成功继续。但是,如果游戏 需要特定版本的 D3DX 或其他更新的功能 跳过了,然后游戏将无法运行,用户将非常 沮丧。
因此,请按照Microsoft建议进行操作,并将可再发行组件添加到您的应用程序中。
另外,不要忘记包括任何可再分发到应用程序的许可协议。在安装之前,用户必须出示并接受这些协议。
- 在实践中,在运行时为零的乘法中是否有任何"lazy"评估
- 如果第一个元素包含任何零,则我的程序以不希望的方式运行
- 如何创建一个模板化函数,可以在任何具有字符串键的 std::map 上运行?
- Antlr cpp 运行时 任何错误的指针转换?
- 继续运行程序而无需任何干预,直到要求退出为止
- 我最近更改了编译器路径以运行 c++ 代码,但现在我无法运行任何 python 代码。我该如何解决这个问题?
- Qt qml - 在没有任何条件的情况下运行一行(while(true))
- 是否有任何 C 函数或 API 来获取当前登录用户下运行的进程列表
- 使用 CodeBlocks + GCC 构建的可执行文件是否可以在任何 Windows 上运行?
- Windows7+:如何构建不需要任何额外/外部运行时库的C++ Windows 控制台应用程序?
- 如何子类可运行任何成员功能
- 由于错误,c ++代码无法在Visual Studios上运行,但不显示任何错误
- 是否有任何可能的方法将事件(自定义)附加到在运行时创建的对象?[C 构建器]
- 程序在运行时不执行任何操作
- 从任何目录运行C++程序
- 我的 c++ 程序不打印任何字符,但是如果我将它们更改为 int,代码可以完美运行
- 如果给定正确的运行时库,x86 可执行文件是否可以在任何 x86 平台上运行
- GLSL 着色器在英特尔的集成 GPU 上运行完美,但在 NVIDIA 上没有任何运行
- 为什么 0.0f/0.0f 不会生成任何运行时错误?
- 是否有任何运行时断言,如:内存是只读的还是当前进程可访问的