- 取引サーバのリターンコード
- コンパイラ警告
- は、コンパイルエラー
- ランタイムエラー
컴파일 오류
MetaEdtior 5는 컴파일 중 내장 컴파일러에서 탐지된 프로그램 오류에 대한 오류 매시지를 표시합니다. 이러한 오류 목록은 아래 표에 나와 있습니다. 소스 코드를 실행 파일로 컴파일 하려면 F7을 누르십시오. 오류가 포함된 프로그램은 컴파일러에 의해 식별된 오류를 제거할 때까지 컴파일 할 수 없습니다.
코드 |
설명 |
---|---|
파일 읽기 오류 |
|
* 열기 오류. EX5 쓰기 |
|
사용가능한 메모리가 부족하여 컴파일을 완료할 수 없습니다 |
|
컴파일러에서 빈 구문 단위를 인식할 수 없습니다 |
|
#include에 잘못된 파일 이름 |
|
#include의 파일 엑세스에 오류 (파일이 존재하지 않을 수 있음) |
|
#define에 대한 부적절한 이름 |
|
전처리기의 알 수 없는 명령 (유효한 #include, #define, #property, #import) |
|
컴파일러에 알 수 없는 기호 |
|
기능이 구현되지 않음 (설명이 있지만 본문이 없음) |
|
큰 따옴표(") 생략 |
|
여는 꺽쇠괄호(<) 또는 큰 따옴표(") 생략 |
|
작은 따옴표(') 생략 |
|
닫는 꺽쇠괄호 ">" 생략 |
|
선언에 유형이 지정되지 않았습니다 |
|
구현의 일부 분기에 반환 연산자 또는 return이 없습니다 |
|
호출 매개변수의 여는 대괄호가 필요 |
|
EX5 쓰기 오류 |
|
배열에 대한 유효하지 않은 액세스 |
|
함수가 보이드 유형이 아니므로 반환 연산자가 값을 반환해야 합니다 |
|
소멸자의 잘못된 선언 |
|
콜론 ":"이 없습니다 |
|
변수가 이미 선언되었습니다 |
|
이러한 식별자가 이미 선언된 변수 |
|
변수 이름이 너무 깁니다 (> 250자) |
|
이러한 식별자가 이미 정의된 구조 |
|
구조가 정의되지 않았습니다 |
|
이름이 같은 구조 멤버가 이미 정의 되었습니다 |
|
해당 구조 멤버가 없습니다 |
|
괄호 쌍이 깨졌습니다 |
|
여는 괄호 "(" 필요 |
|
중괄호 불균형 ("}" 없음) |
|
컴파일하기 어려움(분기가 너무 많아 내부 스택 레벨이 과다하게 채워짐) |
|
읽기 위해 파일을 여는 중 오류 발생 |
|
메모리가 부족하여 원본 파일을 메모리에 다운로드할 수 없습니다 |
|
변수 필요 |
|
참조를 초기화할 수 없습니다 |
|
할당 필요(신고 시 표시됨) |
|
여는 중괄호 "{" 필요 |
|
매개변수는 동적 배열 전용일 수 있습니다 |
|
"보이드" 유형은 사용할 수 없습니다 |
|
")" 또는 "]"에 대한 쌍이 없습니다. 즉 "(" 또는 "[" 가 없음 |
|
"(" 또는 "["에 대한 쌍이 없습나다. 즉, ")" 또는 "]"가 없음 |
|
잘못된 배열 크기 |
|
매개면수가 너무 많습니다 (> 64) |
|
이 토큰은 여기서 사용할 수 없습니다 |
|
유효하지 않은 작업 사용 (유효하지 않은 피연산자) |
|
보이드 유형의 식은 허용되지 않습니다 |
|
연산자 필요 |
|
브레이크 오용 |
|
세미콜론 ";" 필요 |
|
쉼표 "," 필요 |
|
구조가 아닌 클래스 유형이어야 합니다 |
|
식 필요 |
|
HEX 또는 너무 긴 숫자(자리 수>511)에 "HEX 아닌 문자"가 있습니다 |
|
문자열 상수가 65534 자를 초과합니다 |
|
여기서는 함수 정의를 사용할 수 없습니다 |
|
예기치 않은 프로그램 종료 |
|
구조에 대해 전달 선언이 금지됩니다 |
|
이 이름의 함수가 이미 정의되어 있고 다른 반환 유형이 있습니다 |
|
이 이름의 함수가 이미 정의되어 있으며 매개변수 집합이 다릅니다 |
|
이 이름의 함수가 이미 정의되어 구현되었습니다 |
|
이 호출에 대한 함수 오버로드를 찾을 수 없습니다 |
|
반환 값이 보이드 유형인 함수는 값을 반환할 수 없습니다 |
|
함수가 정의되지 않았습니다 |
|
값이 필요 |
|
다음의 경우: 식이 정수 상수만 유효한 경우 |
|
케이스(해당 스위치)의 값이 이미 사용되고 있습니다 |
|
정수 필요 |
|
#import 에서 식 파일 이름이 필요합니다 |
|
글로벌 레벨에서는 식을 사용할 수 없습니다 |
|
";" 앞에 괄호 ")" 가 생략 |
|
등호 왼쪽에 변수가 있어야 합니다 |
|
식 결과가 사용되지 않습니다 |
|
이 경우 변수 선언이 허용되지 않습니다 |
|
문자열에서 숫자로의 암시적 변환 |
|
숫자를 문자열로 암시적으로 변환 |
|
오버로드된 함수의 모호한 호출(여러 오버로드 적합) |
|
불법 : 적절하지 않은 경우 |
|
유효하지 않은 경우 또는 기본값 (스위치 없음) |
|
줄임표의 부적절한 사용 |
|
초기화 단계에 초기화 변수보다 많은 요소가 있습니다 |
|
상수 (예상 사례) |
|
상수 표현식이 필요합니다 |
|
상수 변수는 변경할 수 없습니다 |
|
닫는 대괄호 또는 쉼표가 필요합니다(배열 멤버 선언) |
|
열거자 식별자가 이미 정의되었습니다 |
|
열거형에는 액세스 한정자(const,extern,static)를 사용할 수 없습니다 |
|
열거형 멤버가 이미 다른 값으로 선언되었습니다 |
|
동일한 이름으로 정의된 변수가 있습니다 |
|
동일한 이름으로 정의된 구조가 있습니다 |
|
열거형 멤버의 이름이 필요합니다 |
|
정수 식 필요 |
|
상수 식에서 0으로 나누기 |
|
잘못된 함수의 매개변수 수 |
|
참조별 매개변수는 변수여야 합니다 |
|
참조를 통과할 동일한 유형의 변수가 필요 |
|
상수 변수를 비상수 참조로 전달할 수 없습니다 |
|
양의 정수 상수가 필요 |
|
보호된 클래스 멤버에 액세스 실패 |
|
가져오기가 다른 방법으로 이미 정의되었습니다 |
|
실행 파일이 생성되지 않았습니다 |
|
지표에 대한 'OnCalculate' 진입점을 찾을 수 없습니다 |
|
계속 작업은 루프 내부에서만 사용할 수 있습니다 |
|
비공개(닫힌) 클래스 멤버에 액세스 중 오류 |
|
구조 또는 클래스 메서드이 선언되지 않았습니다 |
|
비공개(닫힌) 클래스 메서드에 액세스 중 오류 |
|
개체를 사용하여 구조를 복사할 수 없습니다 |
|
인덱스가 매열 범위를 벗어남 |
|
구조 또는 클래스 선언에서 배열 초기화가 허용되지 않습니다 |
|
클래스 생성자는 매개변수를 가질 수 없습니다 |
|
클래스 소멸자에 매개변수를 사용할 수 없습니다 |
|
이름과 매개변수가 같은 클래스 메서드 또는 구조가 이미 선언되었습니다 |
|
피연산자 필요 |
|
이름이 같지만 매개변수가 다른 클래스 메서드 또는 구조가 있습니다 (declaration!=implementation) |
|
가져온 함수가 설명되지 않았습니다 |
|
ZeroMemory()는 보호된 멤버 또는 상속이 있는 개체에는 허용되지 않습니다 |
|
오버로드된 함수의 모호한 호출 (여러 오버로드에 대한 매개변수의 정확한 일치) |
|
변수 이름 필요 |
|
이 플레이스에서 참조를 선언할 수 없습니다 |
|
열거 이름으로 이미 사용됨 |
|
클래스 또는 구조 필요 |
|
배열을 삭제하기 위해 'delete' 연산자를 호출할 수 없습니다 |
|
연산자 'while' 필요 |
|
'delete' 연산자에 포인터가 있어야 합니다 |
|
이 'switch'에 대한 'default'가 이미 있습니다 |
|
구문 오류 |
|
이스케이프 시퀀스는 문자열('\'로 시작)에서만 발생할 수 있습니다 |
|
배열 필요 - 대괄호 '['가 배열에 적용되지 않거나 배열이 아닌 배열이 배열 매개변수로 전달됩니다 |
|
초기화 시퀀스를 통해 초기화할 수 없습니다 |
|
가져오기가 정의되지 않았습니다 |
|
구문 트리의 옵티마이저 오류 |
|
너무 많은 구조 선언(프로그램 단순화 시도) |
|
매개변수를 변환할 수 없습니다 |
|
'delete' 연산자를 잘못 사용함 |
|
참조에 대한 포인터를 선언할 수 있습니다 |
|
참조에 대한 참조를 선언할 수 없습니다 |
|
포인터에 대한 포인터를 선언할 수 없습니다 |
|
매개변수 목록에서 구조 선언이 허용되지 않습니다 |
|
유효하지 않은 형식캐스팅 작업 |
|
포인터는 클래스 또는 구조물에 대해서만 선언할 수 있습니다 |
|
신고되지 않은 식별자 |
|
실행 파일 코드 최적화 도구 오류 |
|
실행 파일 코드 생성 오류 |
|
유효하지 않은 'switch' 연산자에 대한 식 |
|
문자열 상수 풀이 채워짐, 프로그램 단순화 |
|
열거형으로 변환할 수 없습니다 |
|
데이터에 'virtual' 사용 안함(클래스 또는 구조의 멤버) |
|
보호된 클래스 메서드를 호출할 수 없습니다 |
|
재정의된 가상 함수가 다른 유형을 반환 |
|
클래스는 구조에서 상속할 수 없습니다 |
|
구조를 클래스에서 상속할 수 없습니다 |
|
생성자는 가상일 수 없습니다 (가상 지정자는 허용되지 않음) |
|
구조 메서드는 가상일 수 없습니다 |
|
함수에 본문이 있어야 합니다 |
|
시스템 기능(터미널 기능)의 오버로딩이 금지됩니다 |
|
클래스 또는 구조의 멤버가 아닌 함수에 대해 Const 지정자가 유효하지 않습니다 |
|
상수 메서드에서 클래스 멤버를 변경할 수 없습니다 |
|
부적절한 초기화 순서 |
|
매개변수의 기본값 누락(기본 매개변수의 특정 선언) |
|
기본 매개변수 재정의(선언 및 구현에서 다른 값) |
|
상수 개체에 대해 상수 메서드를 호출할 수 없습니다 |
|
멤버에 엑세스하기 위해 개체가 필요합니다 (비클래스/구조에 대한 점이 지정됨) |
|
이미 선언된 구조의 이름을 선언에 사용할 수 없습니다 |
|
인증되지 않은 변환(마감 상속 시) |
|
구조 및 배열을 입력 변수로 사용할 수 없습니다 |
|
Const 지정자가 생성자/소멸자에 대해 잘못죄었습니다 |
|
날짜 시간에 대한 문자열 식이 잘못되었습니다 |
|
알 수 없는 속성 (#property) |
|
잘못된 속성 값 |
|
#property의 잘못된 속성 인덱스 |
|
호출 매개변수 생략 - <func (x,)> |
|
개체는 참조를 통해 전달되어야 합니다 |
|
배열은 참조를 통해 전달되어야 합니다 |
|
함수를 내보낼 수 있는 것으로 선언했습니다 |
|
함수를 내보낼 수 있는 것으로 선언하지 않았습니다 |
|
가져온 기능을 내보낼 수 없습니다 |
|
가져온 함수에 이 매개변수를 사요할 수 없습니다 (포인터, 클래스 또는 동적 배열, 포인터, 클래스 등을 포함하는 구조 전달 금지) |
|
클래스여야 합니다 |
|
#import가 마감되지 않았습니다 |
|
유형 불일치 |
|
외부 변수가 이미 초기화되었습니다 |
|
명시적 생성자 호출이 허용되지 않습니다 |
|
메서드가 다음으로 선언되었습니다: 상수 |
|
메서드가 다음으로 선언되지 않았습니다: 상수 |
|
잘못된 리소스 파일의 크기 |
|
잘못된 리소스 이름 |
|
리소스 파일 열기 오류 |
|
리소스 파일 읽기 오류 |
|
알 수 없는 리소스 유형 |
|
잘못된 리소스 파일의 경로 |
|
지정한 리소스 이름이 이미 사용되고 있습니다 |
|
함수 유사 매크로에 대해 인수가 필요 |
|
매크로 정의에서 예상치 못한 기호 |
|
매크로의 형식 매개변수 오류 |
|
유효하지 않은 매크로에 대한 매개변수 수 |
|
매크로에 대한 매개변수가 너무 많습니다 |
|
너무 복잡합니다. 매크로를 단순화하십시오 |
|
EnumToString()에 대한 매개변수는 열거형일 수 있습니다 |
|
리소스 이름이 너무 깁니다 |
|
지원되지 않는 이미지 형식(24비트 또는 42비트 색상 깊이의 BMP만 지원됨) |
|
연산자에 배열을 선언할 수 없습니다 |
|
함수는 글로벌 범위에서만 선언할 수 있습니다 |
|
현재 범위에 선언이 허용되지 않습니다 |
|
로컬 변수 값을 사용하여 정적 변수를 초기화할 수 없습니다 |
|
기본 생성자가 없는 개체 배열의 잘못된 선언 |
|
초기화 목록 후 함수 정의 없음 |
|
초기화 목록이 비어있습니다 |
|
생성자에서 배열 초기화가 허용되지 않습니다 |
|
상위 클래스 멤버를 초기화 목록에서 초기화할 수 없습니다 |
|
정수 유형의 식 필요 |
|
배열에 필요한 메모리가 최대값을 초과합니다 |
|
구조에 필요한 메모리가 최대값을 초과합니다 |
|
글로벌 레벨에서 선언된 변수에 필요한 메모리가 최대값을 초과합니다 |
|
로컬 변수에 필요한 메모리가 최대값을 초과힙니다 |
|
생성자가 정의되지 않았습니다 |
|
유효하지 않은아이콘 파일 이름 |
|
아이콘 파일을 열 수 없습니다지정된 경로에서 |
|
클래스/구조 생성자에서 초기화 목록을 사용하여 멤버 재초기화 |
|
클래스/구조 메서드의 이름이 이전에 선언된 멤버의 이름과 일치합니다 |
|
클래스/구조 멤버의 이름이 이전에 선언한 메서드의 이름과 일치합니다 |
|
클래스 또는 구조의 정적 아닌 멤버/메서드는 정적 함수에 액세스할 수 없습니다 |
|
오버로드 작업 (+,-,[],++,-- etc.)이 연산자 키워드 뒤에 필요합니다 |
|
일부 작업은 MQL5에서 오버로드할 수 없습니다 |
|
정의가 선언과 일치하지 않습니다 |
|
유효하지 않은 매개변수 수를 연산자에 지정했습니다 |
|
이벤트 핸들링 함수를 찾지 못했습니다 |
|
메서드를 내보내기 할 수 없습니다 |
|
상수 개체에 대한 포인터는 상수 개체에 의해 정규화될 수 없습니다 |
|
클래스 템플릿은 아직 지원되지 않습니다 |
|
함수 템플릿 오버로드는 아직 지원되지 않습니다 |
|
함수 템플릿을 적용할 수 없습니다 |
|
함수 템플릿의 모호한 매개변수(여러 매개변수 유형을 적용할 수 있음) |
|
함수 템플릿 인수를 정규화해야 하는 매개변수 유형을 확인할 수 없습니다 |
|
함수 템플릿의 매개변수 수가 잘못되었습니다 |
|
함수 템플릿은 가상일 수 없습니다 |
|
함수 템플릿을 내보낼 수 없습니다 |
|
함수 템플릿을 가져올 수 없습니다 |
|
개체를 포함하는 구조는 허용되지 않습니다 |
|
개체를 포함하는 문자열 배열 및 구조는 허용되지 않습니다 |
|
정적 클래스/구조 멤버를 명시적으로 초기화해야 합니다 |
|
컴파일러 제한: 문자열은 65 535자를 초과할 수 없습니다 |
|
불일치 #ifdef/#endif |
|
클래스 개체를 반환할 수 없습니다. 복사 생성자를 찾을 수 없습니다 |
|
정적 아닌 멤버 및 메서드를 사용할 수 없습니다 |
|
OnTesterDeinit() 없이 사용할 수 없는 OnTesterInit() |
|
형식 매개변수 '%s' 재정의 |
|
매크로 __FUNCSIG__ 및 __FUNCTION__는 함수 본문 외부에 표시할 수 없습니다 |
|
유표하지 않은 반환 유형. 예를 들어 구조 또는 포인터를 반환하는 DLL에서 가져온 함수에 대해 이 오류가 발생합니다 |
|
템플릿 사용 오류 |
|
사용되지 않음 |
|
순수 가상 함수를 선언할 때 구문이 잘못되었으며 "=NULL" 또는 "=0"만 허용됩니다 |
|
순수 지정자("=NULL" 또는 "=0")를 사용하여 가상 함수만 선언할 수 있습니다 |
|
추상 클래스를 인스턴스화 할 수 없습니다 |
|
dynamic_cast 연산자를 사용하여 동적 캐스팅의 대상 유형으로 사용자 지정 유형에 대한 포인터를 적용해야 합니다 |
|
"Pointer to function" 유형이 필요합니다 |
|
메서드에 대한 포인터는 지원되지 않습니다 |
|
오류 – 함수로 포인터 유형을 정의할 수 없습니다 |
|
형식 캐스트를 개인 상속으로 인해 사용할 수 없습니다 |
|
선언하는 동안 const 한정자가 있는 변수를 초기화해야 합니다 |
|
다른 인터페이스 내부에 유효하지 않은 인터페이스가 중첩됨 |
|
인터페이스는 다른 인터페이스에서만 파생될 수 있습니다 |
|
인터페이스 필요 |
|
인터페이스는 공용 상속만 지원합니다 |
|
인터페이스는 멤버를 포함할 수 없습니다 |
|
인터페이스 개체는 직접 만들 수 없으며 상속만 사용합니다 |
|
지정자를 전달 선언에 사용할 수 없습니다 |
|
최종 지정자를 사용하여 선언되었으므로 클래스에서 상속할 수 없습니다 |
|
최종 지정자는 가상 기능에만 적용할 수 있습니다 |
|
재정의 지정자로 표시된 메서드는 실제로 기본 클래스 함수를 재정의 하지 않습니다 |
|
지정자는 함수를 정의하는 데 사용할 수 없으며 선언에만 사용할 수 있습니다 |
|
지정된 형식으로 캐스트할 수 없습니다 |
|
유형은 리소스 변수에 사용할 수 없습니다 |
|
프로젝트 파일에 오류 |
|
유니언 멤버로 사용할 수 없습니다 |
|
이름에 대한 모호한 선택, 사용 컨텍스트를 명시적으로 정의해야 합니다 |
|
DLL에서 구조를 사용할 수 없습니다 |
|
삭제 지정자로로 표시된 함수를 호출할 수 없습니다 |
|
MQL4은 지원되지 않습니다. 이 프로그램을 컴파일하려면 MetaTrader 4 설치 폴더에서 MetaEditor를 사용하십시오 |