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

 
fxsaber :

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

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

"프리랜스"를 기본으로 할 수 있으며 최근 MT5에서 점점 더 많은 작업을 수행합니다.

시간이 빨리(매우) 흐르기 때문에 실제로는 MT5 가이드가 필요합니다. 그것은 진자와 같습니다. 오랫동안 흔들리지만 이미 볼 수 있는 멈출 수 없습니다.

 
매크로 텍스트를 인쇄할 수 있어야 합니다.
 #define OnTick OnTick2


기록되어야 한다

 OnTick = OnTick2


언어가 이것을 허용합니까?

 
fxsaber :
매크로 텍스트를 인쇄할 수 있어야 합니다.

기록되어야 한다

언어가 이것을 허용합니까 ?

무엇을보고? C++ 에서는 매크로가 제대로 작동 하고 필요한 표현식(MQL과 달리)을 작성할 수 있기 때문에 허용합니다. 그 반대를 증명하려고 반복적으로 시도했던 기억이 나지만

 #ifdef __cplusplus
#define MACRO1(X)	#X "=" MACRO2(X)
#define MACRO2(X)	#X
void OnStart ()
{
         printf ( "%s" , MACRO1( OnTick ));
}
#endif

결과: OnTick = OnTick2

 
A100 :

무엇을보고? C++ 에서는 매크로가 제대로 작동 하고 필요한 표현식(MQL과 달리)을 작성할 수 있기 때문에 허용합니다. 그 반대를 증명하려고 반복적으로 시도했던 기억이 나지만

결과: OnTick = OnTick2

고맙습니다. 아마도 그들은 그것을 고칠 것입니다.

 
fxsaber :

고맙습니다. 아마도 그들은 그것을 고칠 것입니다.

그들이 원했다면 이미 오래전에 고쳤을 것입니다. 저는 이전에 여러 형식으로 이에 대해 썼습니다. 마지막 메시지 는 다음과 같습니다.

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

오류, 버그, 질문

A100 , 2020.07.30 02:25

내 생각에 그것은 우선순위의 문제가 아니라 근본적으로 잘못 선택된 매크로 대체 순서의 문제입니다.

C ++에서와 같이 모든 것이 잘 될 것이라고 예상했습니다.

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

오류, 버그, 질문

A100 , 2020.07.30 10:53

C++에서 매크로는 원하는 결과를 투영할 수 있도록 설계되었지만 MQL에서는 모든 것이 투영될 수 있는 것은 아닙니다.



 
이것은 버그입니까 아니면 이와 같아야합니까?
 // Находим крипт-методы, в которых не работает шифрование с ключем.

void OnStart ()
{  
   const string Str = "Hello World!" ; // Строка, которую будем шифровать/дешивровывать.

   uchar BytesStr[];

   StringToCharArray (Str, BytesStr); // Перевели строку в байты
  
   uchar KeyDecode[];
   uchar KeyEncode[];
    
   StringToCharArray ( "qwer" , KeyDecode); // Задали код для шифровки
   StringToCharArray ( "asdf" , KeyEncode); // Задали ДРУГОЙ код для расшифровки
    
   for ( int i = 0 ; i < 8 ; i++) // Перебираем все штатный методы шифровки
  {
     const ENUM_CRYPT_METHOD Method = ( ENUM_CRYPT_METHOD )i; // Текущий метод шифровки
    
     uchar BytesDecode[];
     uchar BytesEncode[];    
    
     CryptEncode (Method, BytesStr, KeyEncode, BytesEncode);     // Зашифровали
     CryptDecode (Method, BytesEncode, KeyDecode, BytesDecode); // Расшифровали
    
     Print ( "Crypt method " + EnumToString (Method) + " is bug - " + ( string )( CharArrayToString (BytesDecode) == Str)); // Сообщаем о наличии/отсутствии бага.
  }
}


결과.

         Crypt method CRYPT_BASE64 is bug - true
        Crypt method CRYPT_AES128 is bug - false
        Crypt method CRYPT_AES256 is bug - false
        Crypt method CRYPT_DES is bug - false
        Crypt method CRYPT_HASH_SHA1 is bug - false
        Crypt method CRYPT_HASH_SHA256 is bug - false
        Crypt method CRYPT_HASH_MD5 is bug - false
         Crypt method CRYPT_ARCH_ZIP is bug - true


CRYPT_BASE64 및 CRYPT_ARCH_ZIP에 대한 암호화가 작동하지 않습니다.

 
fxsaber :

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

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

이제 예보다 아니요. 그러나 5ki를 향한 추세는 물론 추적할 수 있습니다.

 

fxsaber :
Это баг или так и должно быть?

CRYPT_BASE64 및 CRYPT_ARCH_ZIP에 대한 암호화가 작동하지 않습니다.

근본적으로 다른 메소드가 하나의 기능으로 결합되었으므로 버그처럼 보입니다.

원칙적으로 CRYPT_BASE64에는 키가 있을 수 없습니다.

 
fxsaber :

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

절대적으로하지. 그러나 이전에 그 차이가 10배 정도였다면 이제는 숫자가 더 비슷합니다.

 
A100 :

근본적으로 다른 메소드가 하나의 기능으로 결합되었으므로 버그처럼 보입니다.

원칙적으로 CRYPT_BASE64에는 키가 있을 수 없습니다.

고맙습니다. 문제는 ZIP에만 있는 것으로 나타났습니다.

사유: