【问题标题】:Debug assertion failed when launching from exe file (visual studio)从 exe 文件启动时调试断言失败(Visual Studio)
【发布时间】:2019-03-22 17:09:01
【问题描述】:

我被难住了,尝试了从优化设置到设置不同运行时库的所有方法。

只有当我从 .exe 运行我的项目时,我才会收到此错误。 也许有人遇到了同样的问题并且知道如何解决。

MDd模式输出:

Debug Assertion Failed!
Program \x64\Debug\FRTI.exe
File:minkernel\crts\ucrt\src\appcrt\stdio\fseek.cpp
Line: 180

Expression: stream.valid

以及这个错误的可能嫌疑人。

memset(data, 0, length + 1);
fseek(file, 0, SEEK_SET);
fread(data, 1, length, file);
fclose(file);

根据错误判断。

【问题讨论】:

  • 也许该文件没有被读取(因为它在错误的文件夹中)并且您没有错误处理,所以您无论如何都尝试寻找。请记住,如果您在 VS 中运行/调试应用程序,则默认文件夹是包含项目文件的文件夹。如果您在 windows 的文件资源管理器中单击可执行文件,默认文件夹将移动到可执行文件的位置。
  • 什么是datafile 是什么?您是否正确构造了file 并使用它成功打开了文件? Edit 你的问题是添加显示这些细节的代码。因为它不是minimal reproducible example
  • stream.valid 断言失败。想想自己
  • 谢谢@drescherjm 我发现我必须将我的 exe 文件重新定位到包含项目文件的文件夹才能工作。

标签: c++ visual-studio opengl


【解决方案1】:

这个错误主要是因为我的shader文件读取程序没有检测到Shader文件夹。 只需将 .exe 文件重新定位到项目文件夹即可修复它。

非常感谢@drescherjm。

【讨论】:

  • 我认为您应该修复您的代码以处理不同的路径并添加一些错误处理以使您的代码健壮。
  • 好吧,我稍后会考虑,只是我需要展示我的原型以进行进度检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2014-09-09
  • 2016-04-21
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
相关资源
最近更新 更多