2012-05-24 2 views
0

헤더 파일에 몇 가지 오류가 있는데, C++을 처음 사용하기 때문에 수정 방법을 모르겠습니다.C++ 헤더 파일 - 문법 문제

여기 헤더 파일의 코드 : 오류가

#pragma once 

typedef unsigned int uint; 

class DCEncryption 
{ 
public: 
    static char* manageData(char*, char*, uint); 

private: 
    static int max(int, int); 
    static uint leftRotate(uint, int); 
}; 

그리고 현재 위치 :

- dcencryption.h(12): error C2062: type 'int' unexpected 
- dcencryption.h(12): error C2334: unexpected token(s) preceding ':'; skipping apparent function body 
- dcencryption.h(12): error C2760: syntax error : expected '{' not ';' 
- dcencryption.h(13): error C2144: syntax error : 'uint' should be preceded by '}' 
- dcencryption.h(13): error C2143: syntax error : missing ')' before ';' 
- dcencryption.h(13): error C2059: syntax error : ')' 
- dcencryption.h(13): error C2143: syntax error : missing ';' before ')' 
- dcencryption.h(13): error C2238: unexpected token(s) preceding ';' 
+2

일부 컴파일러를 믿는다면'uint'는'unsigned int'를 위해 예약 된 키워드입니다. 내가 잘못했을 수도 있지만 명명 체계를 변경해보십시오. – Drise

+0

@Drise - 당신이 기억하는 것이 사실 C#이 아니라면 그렇게 할 것 같지 않습니다. –

+0

@ JirkaHanika 어쨌든 그것은 일종의 매크로 또는 '#define'충돌 인 것 같습니다. 나는 아직도 명명 충돌을 비난한다. – Drise

답변

4

windows.h을 통해 (Windows에서 아마 당신이 직접 또는 간접적으로 windef.h을 포함했다, 어쩌면) .cpp 파일에서 파일을 포함 할 수 있습니다.

maxwindef.h에 정의 된 매크로로 사용자 환경에서는 제대로 확장되지 않습니다.

이것은 다른 플랫폼에서도 쉽게 발생할 수 있습니다.

+0

WinDef.h의'max' 매크로에 문제가있는 경우, 프로젝트 너비 또는 Windows 헤더를 포함하기 전에'NOMINMAX'를 정의하여 (min 매크로를) 끌 수 있습니다. – Praetorian

+0

정말 고마워요. 메서드의 이름을 변경하고 8 개의 오류가 모두 사라졌습니다. 다시 한번 감사드립니다. –