다른 헤더 파일을 인용할 때 이런 오류가 발생했습니다. 영문도 모릅니다. error C2065: "ColorMatrix": 선언되지 않은 식별자...

5323 단어
오늘 프로젝트를 할 때 다른 프로젝트의 헤더 파일과 원본 파일을 직접 복사한 후에 실행할 때 이런 문제가 발생했습니다. 영문도 모릅니다. 원본 프로그램에서 실행하는 데 문제가 하나도 없지만 새 프로젝트에서는 error입니다.
1 1>e:\c++\button_fly2\button_fly2\gdipbutton.cpp(216): error C2065: “ColorMatrix”:  
2 1>e:\c++\button_fly2\button_fly2\gdipbutton.cpp(216): error C2146:  :  “;”( “HotMat” )
3 1>e:\c++\button_fly2\button_fly2\gdipbutton.cpp(216): error C2065: “HotMat”:  
4 1>e:\c++\button_fly2\button_fly2\gdipbutton.cpp(216): error C2059:  :“{”
5 1>e:\c++\button_fly2\button_fly2\gdipbutton.cpp(216): error C2143:   :  “;”( “{” )
6 1>e:\c++\button_fly2\button_fly2\gdipbutton.cpp(220): error C2143:   :  “;”( “}” )
7 1>e:\c++\button_fly2\button_fly2\gdipbutton.cpp(222): error C2065: “ImageAttributes”:  
8 1>e:\c++\button_fly2\button_fly2\gdipbutton.cpp(222): error C2146:  :  “;”( “ia” )
9 1>e:\c++\button_fly2\button_fly2\gdipbutton.cpp(222): error C2065: “ia”:  

같은 기계에 이런 오류가 발생했습니다. 정말 이해하기 어려워요. 그리고 설정 환경을 검사한 결과 두 프로젝트의 속성이 똑같습니다. 그리고 헤더 파일을 참조하세요. 하나하나만 볼 수 있습니다. 반나절이 지나서야 #include'stdafx.h'문제가 발견되었습니다. 여기에 다른 헤더 파일이 포함되어 있어서 운행할 때 항상 오류를 보고합니다.내 프로그램에 추가된 코드는 다음과 같습니다.
#include 
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;

gdi 헤더 파일을 사용했습니다. 이것은 윈도우즈의api입니다. 미리 컴파일하여 속도를 높일 수 있습니다.
여기 stdafx를 소개해 드릴게요.h는 컴파일러 헤더 파일을 미리 컴파일하는 것을 가리킨다. 이른바 헤더 파일을 미리 컴파일하는 것은 프로젝트(Project)에서 사용하는 MFC 표준 헤더 파일(예를 들어 Windows.H, Afxwin.H)을 미리 컴파일하는 것이다. 이후에 이 프로젝트를 컴파일할 때 이 부분의 헤더 파일을 컴파일하지 않고 미리 컴파일한 결과만 사용한다.이렇게 하면 번역 속도를 가속화하고 시간을 절약할 수 있다.
미리 컴파일한 파일의 역할은 공사 중의 일부 코드를 미리 컴파일해서 한 곳에 두는 것이다.pch 파일에서 나중에 다른 파일을 컴파일할 때 이 헤더 파일이 포함되면 컴파일러가 먼저 이것을 읽습니다.pch 파일의 내용을 건너뛰고 이 헤더 파일의 컴파일을 건너뛰면 프로젝트의 컴파일 시간을 절약할 수 있습니다. *.pch 파일은 일반적으로 매우 크기 때문에 프로젝트 컴파일이 성공한 후에 삭제할 수 있습니다.
컴파일러는 #include "stdafx.h"명령어 앞에 있는 모든 코드를 미리 컴파일한 것으로 보고 #include "stdafx.h"명령을 건너뛰고 프로젝트name을 사용합니다.pch는 이 명령 이후의 모든 코드를 컴파일합니다.다음은 stdafx에 자주 포함된 헤더 파일입니다. 모두 윈도우즈의 핵심 구성 요소입니다.
 1 #include          // MFC  
 2 #include          // MFC  
 3 
 4 #include         // MFC  
 5 
 6 #ifndef _AFX_NO_OLE_SUPPORT
 7 #include            // MFC   Internet Explorer 4  
 8 #endif
 9 #ifndef _AFX_NO_AFXCMN_SUPPORT
10 #include              // MFC   Windows  
11 #endif // _AFX_NO_AFXCMN_SUPPORT
12 
13 #include      //   MFC  

이 구성 요소들은 첫 번째 컴파일된 후에 컴파일되지 않고 직접 인용됩니다.
요약하면 다음과 같습니다.
stdafx 파일은 우리가 자주 수정하지 않는다고 하지만, 만약 다른 사람의 헤더 파일을 인용한다면, 다른 곳과 결합되었는지 주의해야 한다. 쉽게 무시할 수 있는 것은 이 헤더 파일이기 때문에, 이 헤더 파일에 추가 코드가 있는지 반드시 확인해야 한다.프로그램이 실행될 수 있도록 확보하다.
 
다음으로 전송:https://www.cnblogs.com/songliquan/p/3316464.html

좋은 웹페이지 즐겨찾기