Я относительно новичок в C ++, и я пытаюсь создать структуру, доступную из нескольких файлов C ++. Для этого я пишу это в заголовочном файле. Однако структура требует идентификаторов из библиотеки DirectX, а именно «xnamath.h».
Моя структура выглядит следующим образом
struct Vertex
{
Vertex(){}
Vertex(float x, float y, float z,
float u, float v)
: pos(x,y,z), texCoord(u,v){}
XMFLOAT3 pos;
XMFLOAT2 texCoord;
};
Я попытался включить заголовочный файл xnamath в мой заголовочный файл resource.h, но это привело к большему количеству ошибок, чем текущая проблема. Насколько мне известно, структура требуется для всех файлов и поэтому не может быть переопределена в каждом файле .cpp.
Любая помощь будет принята с благодарностью, спасибо людям!
Видимо, у меня недостаточно репутации, чтобы комментировать, поэтому вот несколько идей / вопросов:
Если вы везде включаете resource.h: есть ли в файле объявление ifndef? если нет, возможно, ошибка происходит из-за множественного объявления одной и той же структуры. Может быть, попробовать что-то вроде:
#ifndef _RESOURCE_H_
#define _RESOURCE_H_
// Includes you already had
#include "xnamath.h"
// Stuff you already had
// Your vertex structure
#endif
Надеюсь это поможет.