[ Error ] Visual Studio C++ Error 해결 방법
포스트
취소

[ Error ] Visual Studio C++ Error 해결 방법

HitCount


Contents


ISO C++ 오류

error : <LanguageStandard> 요소에 잘못된 값 “stdcpp20”이(가) 있습니다
해결방법 : 프로젝트 > 속성 > 구성 속성 > C/C++ > 언어 탭에서 C++ 언어 표준ISO C++ 최신 초안 표준(/std:c++latest)로 선택하면 해결이 됩니다. 이렇게 하면 현 Visual Studio에서 사용하고 있는 가장 최근의 C++ 표준 라이브러리를 사용할 수 있게 됩니다.

C2760

구문 오류: ‘식별자’은(는) 예기치 않은 토큰입니다. 필요한 토큰은 ‘형식 지정자’입니다.
해결방법 : 프로젝트 > 속성 > 구성 속성 > C/C++ > 언어 탭에서 준수 모드(Conformance mode)아니오(No)로 선택하면 해결이 됩니다.


C2850

‘PCH 헤더 파일’: 파일 범위에서만 사용할 수 있습니다. 중첩된 구문에는 사용할 수 없습니다.
추가 메시지 : PCH 경고: 전역 범위에 헤더 중지가 있어야 합니다. IntelliSense PCH 파일이 생성되지 않았습니다.
해결방법 : stdafx.h 또는 pch.h파일의 선언 중 세미콜론(;)이 빠져 있는지 확인합니다.(예를 들면 구조체, 배열 등 선언후 세미콜론이 올바르게 사용되었나 확인합니다.)


C4996

‘GetVersionExW’: deprecated로 선언되었습니다.
해결방법 : 프로젝트 > 속성 > 구성 속성 > C/C++ > 전처리기 탭에서 전처리기 정의_CRT_SECURE_NO_DEPRECATE을 추가하거나 소스코드에 #progma warning(disable:4996)을 선언하면 됩니다.


E0167

const char * 형식의 인수가 char * 형식의 매개 변수와 호환되지 않습니다
해결방법 : 프로젝트 > 속성 > 구성 속성 > C/C++ > 언어 탭에서 준수 모드아니요로 변경하여 주면 됩니다. 다른 방법으로 변수를 타입캐스팅 해주셔도 상관없습니다만 많은 경우엔 설정으로 간단히 해결하시는것이 더 빠를 수 있습니다.


LNK2026

LNK2026: 모듈이 SAFESEH 이미지에 대해 안전하지 않습니다.
해결방법 : 프로젝트 > 속성 > 구성 속성 > 링커 > 고급 탭에서 이미지에 안전한 예외 처리기 포함아니요(/SAFESEH:NO)로 선택하면 해결이 됩니다.


LNK4022

LNK4022: ‘xxx’ 기호에만 일치하는 것을 찾을 수 없습니다.
해결방법 : xxx 함수가 사용하는 라이브러리(예 MFC 라이브러리 등) 중에도 존재하는 경우 발생되는 오류입니다. 예를 들면 GetResult가 MFC의 기본라이브러리에도 존재한다고 가정하면, 소스상에 GetResult라는 함수를 재정의하면 문제가 발생됩니다. 이 경우 함수명을 다른 이름으로 바꾸어주면 문제가 해결됩니다.


LNK4070

warning LNK4070: /OUT: .EXP의 xxx.dll 지시문이 ‘~yyy.dll’ 출력 파일 이름과 다릅니다. 지시문이 무시됩니다.
해결방법 : .def 파일의 LIBRARY : “xxx”를 LIBRARY : “yyy”로 변경해주면 해결됩니다.


MIDL2311

error MIDL2311: statements outside library block are illegal in mktyplib compatability mode : [ ]
해결방법 : 이전의 ocx 소스 코드를 불러 올 경우 odl 파일에서 #include 헤더 구문이 library 바깥에 위치하면 해당 오류가 발생됩니다. #include 헤더 구문을 library 안쪽으로 이동시키면 해결이 됩니다.

1
2
3
4
5
6
7
8
9
10
#include <olectl.h>
#include <idispids.h>

[ uuid(18C89C39-B40A-410B-9659-064000FCCCDB), version(1.0),
  helpfile("Avata.hlp"),
  helpstring("Avata ActiveX Control module"),
  control ]
library AVATALib
{
...[생략]...

에서

1
2
3
4
5
6
7
8
9
[ uuid(18C89C39-B40A-410B-9659-064000FCCCDB), version(1.0),
  helpfile("Avata.hlp"),
  helpstring("Avata ActiveX Control module"),
  control ]
library AVATALib
{
	#include <olectl.h>
	#include <idispids.h>
...[생략]...

으로 #include의 위치를 이동시키면 됩니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.