오류, 버그, 질문 - 페이지 1099

 
컴파일 시 오류
 class A {
public :
        A( int   ) { a = 2 ; }
        A( long ) { a = 3 ; }
         int a;
};

#define F( f, cN )  \
template < typename T> \
cN *f( T t ) { return ( new cN( t ) ); }

F( a11, A )

매개변수 매크로를 사용하지 않는 경우 매개변수를 수동으로 대체합니다.

 //F( a11, A )
template < typename T>
A *a11( T t ) { return ( new A( t ) ); }

void OnStart ()
{
         int b = 10 ;
        A *a = a11( b );
         Print ( a.a );
         delete ( a );
}
그럼 모든게 괜찮아
 

형언할 수 없이 놀라움... ME는 메인 레벨에서 다른 프로젝트 파일에 선언된 포함 변수에서 전혀 볼 수 없습니다(하이라이트하지 않고 변수가 정의된 곳으로 갈 수 없습니다).

그리고 얼마나 오래 되었습니까?

 
joo :

형언할 수 없이 놀라움... ME는 메인 레벨에서 다른 프로젝트 파일에 선언된 포함 변수에서 전혀 볼 수 없습니다(하이라이트하지 않고 변수가 정의된 곳으로 갈 수 없습니다).

그리고 얼마나 오래 되었습니까?

각 "포함"에서 연결해야 하는 다른 파일도 지정해야 합니다.
 
tol64 :
각 "포함"에서 연결해야 하는 다른 파일도 지정해야 합니다.

프로젝트는 훌륭하게 컴파일됩니다. 즉, 컴파일러는 모든 것을 볼 수 있습니다. ME 편집기는 그렇지 않습니다.

게다가 기본 .mq5 실행 파일을 변수가 선언 된 인클루드로 지정하는 방법을 상상할 수 있습니까?

 
joo :

프로젝트는 훌륭하게 컴파일됩니다. 즉, 컴파일러는 모든 것을 볼 수 있습니다. ME 편집기는 그렇지 않습니다.

게다가 기본 .mq5 실행 파일을 변수가 선언 된 인클루드로 지정하는 방법을 상상할 수 있습니까?

예를 들면 다음과 같습니다.

 //--- Связь с основным файлом эксперта
#include "..\Main.mq5"
또는 무언가를 할 수 없는 짧은 예를 들어 주십시오. 더 빨라질 것입니다. )
 
tol64 :

예를 들면 다음과 같습니다.

또는 무언가를 할 수 없는 짧은 예를 들어 주십시오. 더 빨라질 것입니다. )
\프로젝트\

메인.mq5

 input string Nevidimka="труляля";

#include "Include\Incl.mqh"

\프로젝트\포함\

mqh 포함

 void Func()
{
   Print (Nevidimka); //Тут переменная Nevidimka не подсвечивается как должна бы подсвечиваться и нельзя перейти к месту её объявления
}
 
joo :
...

프로젝트 폴더의 기본 파일:

 //+------------------------------------------------------------------+
//|                                                         Main.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property version    "1.00"
//---
#include "Include\Incl.mqh"
//---
input string Nevidimka = "труляля" ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
  }
//+------------------------------------------------------------------+
//| OnTick                                                           |
//+------------------------------------------------------------------+
void OnTick ()
  {
  }
//+------------------------------------------------------------------+

Project\Include 디렉토리에 포함된 파일:

 //--- Связь с основным файлом эксперта
#include "..\Main.mq5"
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Func()
  {
   Print ( Nevidimka ); // Теперь подсвечивается и можно перейти к месту её объявления
  }
//+------------------------------------------------------------------+
 
tol64 :

프로젝트 폴더의 기본 파일:

Project\Include 디렉토리에 포함된 파일:

글쎄,이 무의미한 몸짓은 무엇을위한 것입니까? ME는 컴파일러와 똑같이 변수와 함수를 볼 수 있어야 합니다.

또한 제안한 것은 대부분의 경우 불편합니다(각 프로젝트 에 대한 포함을 편집하려면?).

 

각 파일의 인텔리전스는 해당 범위 내에서만 작동합니다. 즉, 전체 파일이 모든 명시적 포함과 함께 스캔됩니다.

링크가 없는 특정 파일에 다른 사람의 알 수 없는 파일 데이터가 표시되도록 제안합니다. 근본적으로 잘못된 것입니다.

 
joo :
글쎄,이 무의미한 몸짓은 무엇을위한 것입니까? ME는 컴파일러와 똑같이 변수와 함수를 볼 수 있어야 합니다.
다른 옵션은 모르겠습니다. ) 다른 사람이 대답할 수도 있습니다.