【问题标题】:Run-Time Check Failure #0 C++运行时检查失败 #0 C++
【发布时间】:2013-07-02 04:39:05
【问题描述】:

我正在运行的项目使用 CodeJock - ToolKitPro (MFC) 来提供用户界面,并使用其他库在某些窗口中进行一些非常密集的渲染。

我们使用 PVRVFrame 库 (OpenGL) 进行渲染。

当我点击第一个 OpenGL 函数调用时 - 它恰好是 eglGetDisplay,但来自这些库的任何函数调用似乎都会导致相同的错误 - 我收到以下错误消息:

运行时检查失败 #0 - ESP 的值未正确保存 通过函数调用。这通常是调用 用一个调用约定和一个函数指针声明的函数 使用不同的调用约定声明。

我已经读到这是一个问题,该函数是使用某种调用约定(在本例中为 __stdcall)声明的,但使用不同的约定调用 - 但是我不确定这怎么可能。

【问题讨论】:

  • 不看代码就很难说
  • 我能告诉你什么对你有帮助吗?我认为这与其说是代码问题,不如说是项目设置/库配置问题,但如果有帮助,我很乐意发布一些代码。
  • 如果您使用GetProcAddress,获取函数指针的代码会很好。调用函数的代码也很好。了解如何进行调用以及如何声明调用在这些情况下很有帮助。

标签: c++ opengl mfc egl


【解决方案1】:

好的,抱歉,这很尴尬,但我在用头撞墙几天后解决了这个问题。

基本上我链接到了错误的 libEGL.dll 和 libGLESv2.dll。

我有我的项目设置来查看我项目的本地库目录,但我的系统目录中有这些库的旧版本:C:\Windows\SysWOW64\

Depends.exe 告诉我在 C:\Windows 和 C:\Windows\system32 中查找,但我猜我设置了一些路径来查找 SysWOW64 文件夹,所以这也让我迷失了一段时间。

感谢 Oblivious 船长的关注和帮助。

【讨论】:

  • 谢谢 - 我遇到了同样的问题。不知道那些文件在那个文件夹里做了什么,是一台相对较新的 PC。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-16
  • 2013-02-26
  • 1970-01-01
相关资源
最近更新 更多