Я относительно новичок в 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
Надеюсь это поможет.
resource.h
файлом, который вы показали? Если нет,#include <xnamath.h">
в вышеуказанном файле.