Проект, который я запускаю, использует CodeJock — ToolKitPro (MFC) для предоставления пользовательского интерфейса и использует другие библиотеки для довольно интенсивного рендеринга в некоторых окнах.
Мы выполняем рендеринг с помощью библиотек PVRVFrame (OpenGL).
Когда я нажимаю первый вызов функции OpenGL — это случается eglGetDisplay
, но любой вызов функции из этих библиотек, кажется, вызывает ту же ошибку — я получаю следующее сообщение об ошибке:
Ошибка проверки времени выполнения # 0 — значение ESP не было сохранено должным образом
через вызов функции. Обычно это результат вызова
функция объявлена с одним соглашением о вызовах с указателем на функцию
объявлено с другим соглашением о вызовах.
Я читал, что это проблема, когда функция была объявлена с определенным соглашением о вызовах (в данном случае __stdcall), но вызвана с другим соглашением — однако я не уверен, как это возможно.
Хорошо, извините, это смущает, но я решил это после пары дней, ударив головой о стену.
В основном я ссылался на неправильные libEGL.dll и libGLESv2.dll.
У меня была настройка проекта для просмотра в каталоге локальной библиотеки моего проекта, но у меня были более старые версии этих библиотек в системном каталоге: C: \ Windows \ SysWOW64 \
Depends.exe говорил мне искать в C: \ Windows и C: \ Windows \ system32, но я предполагаю, что у меня были настроены некоторые пути для поиска в папке SysWOW64, так что я тоже на некоторое время отшвырнул меня.
Спасибо, Капитан Забыв, за ваш интерес и вашу помощь.
Других решений пока нет …