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

 
A100 :
컴파일 중 오류:

예전에는 작동했지만 연초에 함수 포인터가 고장났고 코드가 여전히 MT4에서 작동해야 하는 것 같습니다.

이것은 작동합니다:

 typedef void (*fn)();
void f() {}
fn g() { return f; }
void OnStart ()
{
    fn func = g();
    func();
}

저것들. 이제 임시 변수를 사용해야 합니다( 이제 포인터 배열을 사용할 수도 없습니다!!!! )

A100 :

여기에 약간의 모순이 있습니다. 왜냐하면

그리고 근본적인 차이점 은 정확히 무엇입니까?

관리자 중 한 명이 구문 분석이 어떻게 발생하는지 오랫동안 썼습니다. 먼저 정적 변수를 설명한 다음 전역적으로 설명한 다음 함수 본문을 텍스트에서 위에서 아래로 구문 분석합니다.

...하지만 정확히는 아닙니다 ;)

 
Igor Makanu :

저것들. 이제 임시 변수를 사용해야 합니다( 이제 포인터 배열을 사용할 수도 없습니다!!!! )

개발자가 가능하면 임시로 수행하지 않도록 작성했습니다.

 
A100 :

개발자가 가능하면 임시로 수행하지 않도록 작성했습니다.

@fxsaber 는 발견하자마자 썼습니다. 아마도 이미 1년이 지났을 것입니다. 글쎄, 아마도 그들은 당신을 듣게 될 것입니다.
 
Igor Makanu :

저것들. 이제 임시 변수를 사용해야 합니다( 이제 포인터 배열을 사용할 수도 없습니다!!!! )

불가능하다는 것을 증명하는 예가 있습니까?

 
A100 :

불가능하다는 것을 증명하는 예가 있습니까?

예를 썼다:

 typedef void (*fn)();
void f() {}
fn g() { return f; }
void OnStart ()
{
//   fn ptr[10];                                                 //possible use of uninitialized variable 'ptr'
   fn ptr[ 10 ] = { 0 };                                             // OK
   for ( int i = ArraySize (ptr) - 1 ; i >= 0 ; i--) ptr[i] = g();
   
//   for(int i = ArraySize(ptr) - 1; i >= 0; i--) ptr[i]();     //')' - expression expected
   
   for ( int i = ArraySize (ptr) - 1 ; i >= 0 ; i--)                   // OK
   {
      fn func = ptr[i];
      func();
   }
}

경고 fn ptr[10]을 제공하는 이유가 궁금합니다. //초기화되지 않은 변수 'ptr' 사용 가능

함수 포인터를 초기화하는 방법을 찾아야 합니다.


이전에는 MQL5에서 사용할 수 있었습니다. ptr[i]();
 
Igor Makanu :

이전에는 MQL5에서 사용할 수 있었습니다. ptr[i]();

네 기억합니다

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

A100 , 2020.07.23 02:40

컴파일 중 오류

 typedef void (*fn)();
void OnStart ()
{
        fn ff[ 1 ];
        ff[ 0 ](); // Error:: ')' - expression expected
} 

그리고 (작년 빌드) 모든 것이 컴파일되고 잘 작동 하기 전에

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

A100 , 2020.07.23 16:31

오래된 스톡 빌드 2085 x32에서 추출 - 모든 것이 컴파일됨 - 직접 시도할 수 있습니다.

 
컴파일 중 오류:
 class EventChartCustom {
       EventChartCustom () {}
};
bool f()
{
     return ( EventChartCustom ( 0 , 0 , 0 , 0 , NULL ) ? true : false ); //(1) Error: 'EventChartCustom' - wrong parameters count
}
좋아요:
 bool f()
{
     if (    EventChartCustom ( 0 , 0 , 0 , 0 , NULL ) ) //(2) нормально
         return ( true );
     else
         return ( false );
}

그리고 근본적인 차이점은 무엇입니까?

 
컴파일 중 오류:
 class A {
      A() {}
};
void A() {} //(1) Error: 'A' - identifier already used
좋아요:
 void A() {} //(2) нормально
class A {
      A() {}
};

그리고 근본적인 차이점은 무엇입니까?

 
시장 규칙.
В Продуктах запрещен вызов любых DLL-библиотек, включая системные библиотеки Microsoft Windows.
사용자가 DLL 사용을 허용하는 경우 Market Product에 기능을 확장할 수 있는 권한이 있습니까?
 

시장에서 통계를 찾지 못했습니다. 따라서 문제는 크로스 플랫폼 제품 판매자를 위한 것입니다.

MT5 버전이 MT4보다 실제로 더 잘 팔립니까?