将我的DirectX应用程序移植到其他计算机
Porting my DirectX application to other machines
我最近在DirectX中创建了一个三维环境,并制作了一个小型的"演示"应用程序。我使用Windows 8 SDK在Win 7,VS 2013上创建了该应用程序。我想在我的网站上发布一个应用程序的版本,供所有人使用。然而,我不确定该怎么做。当我构建x64版本并尝试在我的Win 10桌面或我的兄弟Win 7桌面上运行它时,它将不会运行。只要我点击应用程序说"GraphicsProject.exe已停止工作",它就会崩溃。.exe在我创建的笔记本电脑(VS之外的版本)和另一台Win7电脑上运行良好。
不工作的计算机安装了DirectX(DX11+),我在它们上安装了C++和C运行库。还有什么可能导致崩溃,或者它可能与我的代码直接相关?
我意识到这个问题可能有多种原因,但我不确定该看什么信息才能缩小问题范围。如果您需要任何其他信息,请咨询!
根据这个确切问题的经验(让DirectX发布应用程序在非开发机器上工作):
不要在发布机器上安装任何MS调试器。这会污染测试机器,只会延长问题的时间。正如Ross所说,您的代码中存在调试环境正在补偿的崩溃,或者某些环境/显卡设置不匹配(可能是测试机上的着色器不匹配/设备驱动程序过时)。
一定要开始在应用程序中构建日志记录。在开发的早期阶段执行此操作,创建编译器指令(#ifdef)以打开和关闭它们,并使用多个级别的调试(详细、警告、错误、信息)。写出您输入的每个函数名称、发送的参数和返回的结果。学会热爱日志记录。
这种方法可以保证你不会用完测试机器,或者兄弟们开始抱怨你在他们的机器上安装了太多的东西来测试你的软件。为查明问题而必须进行的迭代次数与包含的日志数量成正比。
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 在其他文件中创建类时在 c++ 项目中不起作用
- 类与私有变量的其他类之间的线程安全性
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- GlobalAlloc而不是其他分配方法
- QT.如何使用QTNetwork在网络上查看其他计算机
- Visual C 程序不在其他计算机中运行
- 在其他计算机 MVCP100d 中打开 EXE 需要什么文件
- 将 c++ 游戏部署到其他窗口计算机
- ShellExecute 不适用于其他计算机
- C++-发送的请求未到达其他计算机
- struct-statc++未在其他计算机中编译
- 将我的DirectX应用程序移植到其他计算机
- Visual C++2010-将项目复制到其他计算机后出现多个未解决的外部错误