Assimp не будет правильно работать в Code::Blocks - "TVITEMEXW не объявлен в текущей области"

В настоящее время я работаю над учебными пособиями по LearnOpenGL, которые до сих пор шли хорошо, пока я не коснулся части учебника, посвященной загрузке моделей.

LearnOpenGL использует библиотеку Assimp для обработки загрузки модели, но мне кажется, что я не могу заставить ее правильно строить (предварительно скомпилированные библиотеки у меня тоже не работают) - она ​​выдает ошибки в "Display.cpp":

In function 'unzOpenCurrentFile3':
Line 1177: warning: assignment from incompatible pointer type
In member function 'int AssimpView::CDisplay::AddNodeToDisplayList(....'
Line 179 error: 'TVITEMEXW' was not declared in this scope

Со строкой 179 ошибка оказывается основной причиной сбоя. Посмотрев в файл 'Display.cpp', проблема заключается в следующем объявлении:

TVITEMEXW tvi;

И TVITEMEXW, кажется, не объявляется / не включается в файл явно, но включенными заголовками являются stdio.h, stdlib.h, string.h и "./unzip.h". После некоторых поисков я обнаружил, что TVITEMEX - это структура Windows с TVITEMEXW в качестве имени Юникода (в соответствии с этим), но я довольно плохо знаком с C++/ компиляторами и т. Д., И действительно не знаю, что делать с этой информацией,

Я создал файл проекта Code::Blocks с помощью CMake и MinGW из Assimp 3.2.

Буду очень признателен за любую помощь, я застрял с этим в течение нескольких дней и не могу понять, как решить это сам. Извиняюсь, если я не предоставил достаточно / правильную информацию, я не совсем уверен, что именно имеет отношение к проблеме.

1 ответ

Решение

Попробуйте заменить TVITEMEXW с TVITEMW и возможно sNew.itemex с sNew.item,

Другие вопросы по тегам