如何将d3dx9_43.dll打包到我的应用程序中
How to package d3dx9_43.dll in to my application?
我做了一个小游戏,我需要带到学校进行一些测试。
不幸的是,作为一个学校系统,我需要打包所有尚未安装的dll,以便它可以运行。在电脑上安装任何东西都是不可能的。几天前,我注意到由于缺少d3dx9_43.dll文件,应用程序无法启动。
我已经静态链接了我使用过的库,我很困惑为什么没有包括这个。我参考了所有我使用过的Direct3D 9库(或者我认为是这样)。
有谁能帮我吗?我使用的是Visual Studio c++ 2010和Direct3D 9。
唯一遵守许可证的选项是安装可重新发布的包。
D3DX的早期版本确实支持静态链接,但出于安全原因,MS更改了规则以禁止静态链接。他们希望能够通过WIndows Update为这些dll提供服务,这只有在使用官方可重新发布的软件包安装时才有可能。
你的一个可能的选择是看看你是否可以避免链接到D3DX。这可能是因为您使用了一个足够小的库空间,您可以绕过它。
这应该通过在应用程序安装程序中包含DirectX 9.0可重新分发包来完成,但是因为你不能安装任何东西,所以你要么必须将所有dll与可执行文件一起发布(这违反SDK许可证),要么静态地链接到DirectX运行时(这也可能是不允许的)。
针对DirectX运行时的静态链接不是一个好主意,也不像看起来那么微不足道,我甚至不确定这是可能的,但你必须有实际的静态库(而不是实际上由自己链接到dll)。
所以最简单的解决方案是保留所有需要的DLL与exe,如果你担心丢失一个依赖,你可以使用依赖沃克。请注意,此解决方案不被SDK许可证允许,并且不能用于实际将应用程序分发给最终用户
相关文章:
- 我的应用程序无法在安卓上使用OpenSSL进行链接
- 我的 c++ 应用程序中的运行时间从 0 增加到 60 太快了(例如一毫秒或一微秒)
- 设置我的应用程序 API 感知并防止系统使其模糊和错误定位
- 是否可以将不同的编译器嵌入到我的应用程序中?
- 即使在我为我的应用程序授予管理员后也无法从 Windows 系统复制目录
- 计算有多少人执行我的C++应用程序
- 为什么我的 C# 应用程序无法加载我的 C++ dll?
- 是否可以将 VBA 编程环境添加到我的C++应用程序?
- 指定在用户固定我的应用程序时用于运行应用程序的命令参数
- LOCAL_SHARED_LIBRARIES使我的应用程序崩溃
- 为什么使用 nullPtr 调用函数不会使我的应用程序崩溃
- 当我尝试将一个向量元素的值分配给另一个向量元素时,为什么我的应用程序会崩溃
- 为什么Linux报告了我的应用程序的内存使用情况
- 如何使用Qt读取我的应用程序屏幕像素数据
- 为什么我的应用程序即使我的应用程序也关闭,即使我有cin.get();
- 需要知道 Windows API 才能在我的应用程序激活时获取回调
- 我的应用程序是从Visual Studio内部运行还是通过执行EXE文件运行
- 在我的应用程序中侦听 iexplorer 的关闭事件
- 将 python 嵌入我的应用程序时内存泄漏
- 当我释放由CFFI生成的DLL分配的char*时,为什么我的应用程序会崩溃