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 в качестве имени Unicode (согласно this), но я новичок в C++/компиляторах и т. д. и не знаю, что делать с этой информацией.

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

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


person ACraftyMarmoset    schedule 01.06.2016    source источник
comment
Вы решили эту проблему? У меня - то же самое.   -  person 2A-66-42    schedule 16.07.2016
comment
Мне так и не удалось это сделать должным образом - в конце концов мне удалось скомпилировать его, скопировав раздел синтаксиса из ссылки в вопросе в Display.cpp, но я столкнулся с большим количеством (по-видимому, связанных) ошибок при попытке использовать Assimp.   -  person ACraftyMarmoset    schedule 03.08.2016


Ответы (1)


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

person komodo    schedule 15.11.2016