2014-06-14 2 views
0

저는 C++에 비교적 익숙하며 여러 C++ 파일에서 액세스 할 수있는 구조체를 만들려고합니다. 이렇게하려면 헤더 파일에 쓰고 있습니다. 그러나 구조체에는 DirectX 라이브러리의 식별자, 즉 "xnamath.h"가 필요합니다. 내 및 Resource.h 헤더 파일에 xnamath 헤더 파일을 포함하여 시도헤더 파일의 DirectX 기반 구조체

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; 
}; 

을 다음 그러나 이것은 현재의 문제보다 더 많은 오류를 이끌었다

내 구조체이다. 구조체는 모든 파일에 필요하므로 내가 알고있는 한 각 .cpp 파일에서 재정의 할 수 없습니다.

도움을 주시면 대단히 감사하겠습니다. 감사합니다.

+0

'resource.h'는 당신이 보여준 파일입니까? 그렇지 않다면, 위의 파일에서'#include '. –

+0

아니요, 이것은 .cpp 파일에서 구조체를 시도했지만 로컬로만 올바르게 컴파일되었지만 resource.h에 들어 있습니다. – Jed

답변

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 
    

희망 : 어쩌면 뭔가를하려고합니다.