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

 
Slava :
그리고 그것은 가능해서는 안됩니다
하지만 이전에도 그런 가능성이 있었습니다!
 
나가려고 했어
 template < typename T>
class CLASS_COPY
{
public :
  T Data;

  CLASS_COPY( const T &Value )
  {
    Data = Value;
  }
};

template < typename T1, typename T2>
void Copy( T1 &ObjectDst, const T2 &ObjectSrc )
{
   const CLASS_COPY<T2> Object(ObjectSrc);
   const CLASS_COPY<T1>* ObjectCopy = dynamic_cast < const CLASS_COPY<T1>*>(&Object);
   
   ObjectDst = ObjectCopy.Data; // invalid pointer access
}

문제 없이 컴파일되지만 실행 시 오류와 함께 충돌합니다. 이제 복사 기능을 작성하는 방법은 무엇입니까?

 

작동하던 DLL이 작동을 멈췄습니다. DLL은 64비트입니다. 동일한 x32 DLL이 MT4에서 작동합니다.

Windows 10 Home(x64 기반 PC), 1703, MT5 그림 1589
 
fxsaber :
나가려고 했어

문제 없이 컴파일되지만 실행 시 오류와 함께 충돌합니다. 이제 복사 기능을 작성하는 방법은 무엇입니까?

dll이 중요하지 않은 경우 memcpy . 또는 연합을 기다리십시오

사실 확실히 재미있습니다. 구조체의 캐스트는 공용체에 대한 일반 대안으로 개발자가 직접 호출했는데 이제 캐스트할 수 없고 아직 공용체도 없습니다.

 
어떤 빌드에서 EX5가 시장에서 허용됩니까?
 
Комбинатор :

사실 확실히 재미있습니다. 구조체의 캐스트는 공용체에 대한 일반 대안으로 개발자가 직접 호출했는데 이제 캐스트할 수 없고 아직 공용체도 없습니다.

그래서 연합의 도래와 함께 완전한 캐스팅이 불가능할 것입니다. 간단한 경우만 가능합니다.
 
fxsaber :

이제 복사 기능을 작성하는 방법은 무엇입니까?

파일을 사용하는 것이 얼마나 완전히 왜곡되었지만 기본적으로
FileReadStruct - Файловые операции - Справочник MQL4
FileReadStruct - Файловые операции - Справочник MQL4
  • docs.mql4.com
FileReadStruct - Файловые операции - Справочник MQL4
 
Комбинатор :
파일을 사용하는 것이 얼마나 완전히 왜곡되었지만 기본적으로
네, DNO입니다.
 

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

오류, 버그, 질문

fxsaber , 2017.04.10 16:23

컴파일 오류 로 이어지는 추가 템플릿 오버로드 생성
 template < typename T>
T Func()
{
  T Res;
  
   return (Res);
}

template < typename T>
void Func( T& Value )
{
  T Res = ( MqlTick )Value;
}

void OnStart ()
{
  Func< string >(); // без этой строки компилируется
  
   MqlTick Tick;
  
  Func(Tick);
}

어떤 이유로 컴파일러는

 void Func( string & );
이 코드가 1589년에 컴파일되지 않는 이유는 무엇입니까? 여기에 캐스팅이 없습니다.
 
Комбинатор :

dll이 중요하지 않은 경우 memcpy입니다. 또는 연합을 기다리십시오

사실 확실히 재미있습니다. 구조체의 캐스트는 공용체에 대한 일반 대안으로 개발자 자신이 호출했는데 이제 캐스트할 수 없고 아직 공용체도 없습니다 .

바로 그거죠.