2009-04-07 9 views
0

VS2005에 C++/CLI 클래스 라이브러리 프로젝트가 있는데 문제가 있습니다. 열거 클래스 인 언어라는 클래스를 정의했습니다. 이는 다음과 같습니다VS2005.NET 프로젝트의 내부 참조

"Language.cpp" 
namespace Company 
{ 
    namespace product 
    { 
     public class LanguageConsumer 
     { 
     public: 
      LanguageConsumer() 
      { 
      } 
     public: 
      Languages DoSomething(Languages input) 
     { 
      if (input == Languages::English) 
      { 
       //Do something and return 
      } 
     }; 
    } 
}; 

그러나 내 프로젝트 doensn't 컴파일 :

"Language.cpp" 
namespace Company 
{ 
    namespace product 
    { 
     public eunm class Languages : int 
     { 
      English = 1, 
      German = 2, 
      //etc for other languages 
     }; 
    } 
}; 

그때 참고로 같은 공간에 살고있는이 시도 다른 클래스가 있습니다. 나는 다른 클래스가 서로를 보지 못해도 같은 네임 스페이스에 있다고 생각할 수도 있습니다. 나는 헤더 파일과 헤더 파일을 #include해야한다고 가정하지만 C++/CLI에 대해 충분히 알지 못한다. (나는 거의 C 경험이없는 C# 배경에서 나온다.) 나는 많은 것을 시도했다. 내가 생각할 수있는 다른 조합. 나는 그들이 무엇을하고 있는지 아는 누구에게나 아주 명백한 것을 놓쳤다 고 확신한다. 그러나 슬프게도 나는 그렇지 않다.

미리 감사드립니다.

답변

1

C++/CLI는 여전히 C++처럼 컴파일되지만 파일 파일은 별도로 컴파일 된 다음 함께 연결됩니다. 이것은 모든 파일을 함께 컴파일하는 C#과 다릅니다. 컴파일 시간에 파일은 서로에 대해 알지 못하므로 코드가 컴파일되지 않습니다 (이 열거 형은 무엇입니까?). 클래스와 동일한 파일 (컴파일 유닛)에 enum 정의가 있어야합니다.

간단한 방법은 코드를 동일한 파일로 옮기는 것입니다. 헤더 파일 솔루션은 열거 형 정의를 헤더 파일로 이동 한 다음 다른 파일에 포함 (#include)하는 것입니다. #include는 다른 파일의 텍스트를 삽입하여 동일한 효과를냅니다.

관련 문제