Структура на основе DirectX в заголовочном файле

Я относительно новичок в 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.

Любая помощь будет принята с благодарностью, спасибо людям!

0

Решение

Видимо, у меня недостаточно репутации, чтобы комментировать, поэтому вот несколько идей / вопросов:

  • У вас есть предварительно скомпилированный заголовок (как обычно stdafx.h или DXUT.h)? Если так, возможно, включение туда будет работать;
  • Если вы везде включаете resource.h: есть ли в файле объявление ifndef? если нет, возможно, ошибка происходит из-за множественного объявления одной и той же структуры. Может быть, попробовать что-то вроде:

    #ifndef _RESOURCE_H_
    #define _RESOURCE_H_
    
    // Includes you already had
    #include "xnamath.h"
    // Stuff you already had
    // Your vertex structure
    
    #endif
    

Надеюсь это поможет.

0

Другие решения


По вопросам рекламы [email protected]