Dizi referansları - sayfa 5

 
TheXpert :
Ah benim knixens, daha yeni kazmaya başlıyorum.

Pekala, o zaman kazıcımı tut, biraz daha rahat hale getirdim.

 #import "msvcrt.dll"
   long memcpy( uchar &dst[], long &src, int cnt);
   long memcpy( uchar &dst[], int &src, int cnt);
#import

struct ArrayStore
{
   long offset;
   double x[][ 15 ];   // == 0x5800 0100 0800
   // long x[][15];  // == 0x5500 0100 0800
   // ulong x[][15];  // == 0x5600 0100 0800
   
   // int x[][15];  // == 0x5200 0100 04
   // uint x[][15];  // == 0x5300 0100 04
   // short x[][15]; // == 0x5000 0100 02
   // ushort x[][15]; // == 0x4F00 0100 02
   //char x[][15];  // == 0x4D00 0100 01
   //uchar x[][15];  // == 0x4E00 0100 01
   long reserved;

};

#define N 76
// sizeof(ArrayStore) == 60

void OnStart ()
{
   ArrayStore store;
   ArrayResize (store.x, 0x11 , 0x22 );
   store.offset = 0 ;
   store.reserved = 0xEEEEEEEEEEEEEEEE ;
   
   uchar array[N];
   ArrayInitialize (array, 0 );
   
   memcpy(array, store.offset, N);
   Print ( "===== Start =====" );
   for ( int j= 0 ;j< 8 ;j++)
   {
     string s= "" ;
     for ( int i = 0 ; i < 8 ; i++)
     {
        s = s + ((i% 4 == 0 )? " : " : " " )+ StringFormat ( "%.2X" , array[i+ 8 *j+ 8 ]);
     }
     Print (s);
   }
   
ArrayResize (store.x , 31 , 3 );    

   memcpy(array, store.offset, N);
   Print ( "=====  =====" );
   for ( int j= 0 ;j< 8 ;j++)
   {
     string s= "" ;
     for ( int i = 0 ; i < 8 ; i++)
     {
        s = s + ((i% 4 == 0 )? " : " : " " )+ StringFormat ( "%.2X" , array[i+ 8 *j+ 8 ]);
     }
     Print (s);
   }
   
ArrayResize (store.x , 0 , 7 );    

   memcpy(array, store.offset, N);
   Print ( "=====  =====" );
   for ( int j= 0 ;j< 8 ;j++)
   {
     string s= "" ;
     for ( int i = 0 ; i < 8 ; i++)
     {
        s = s + ((i% 4 == 0 )? " : " : " " )+ StringFormat ( "%.2X" , array[i+ 8 *j+ 8 ]);
     }
     Print (s);
   }
   Print ( "===== End =====" );
}
 
TheXpert :
Ayrıca bir AsSeries bayrağı ve muhtemelen diğerleri olmalıdır.
Ö! Tam olarak, üçüncü baytta dördüncü bit (bit sıfırdan sayılır)
 

Bu arada, benimkinde bir hata yaptım - import 'da tüm uzunlar ints ile değiştirilmelidir.

Soru şu ki, ikinci boyuta neden ihtiyaç duydunuz?

Başka bir soru - 76 nereden geldi? yapınızın boyutu 52 + 2*8 = 68;

 
TheXpert :

Bu arada, benimkinde bir hata yaptım - ithalatta, tüm uzunlar ints ile değiştirilmelidir.

Soru şu ki, ikinci boyuta neden ihtiyaç duydunuz?

Ben de üçüncüsünü yaptım ;)) - yapının tepkisini incelemek için. araştırıyormuyuz?


Başka bir soru - 76 nereden geldi? yapınızın boyutu 52 + 2*8 = 68;

Ve dizi yapısının gerçek boyutuna baktım, bunun için diziden sonra bilinen verileri sona ekledim (
store.reserved = 0xEEEEEEEEEEEEEEEE ;
) ve taranır.
 

Olası işaretler için daha fazla öneri -- statik/dinamik ve gösterge/normal

static \ dynamic kaybolur, statik tip "long x[5]" bir yapı olarak değil, bir uzunlar dizisi olarak yazılır.

 

Şimdiye kadar:

 // Array Struct
struct Array
{
   short type; // номер типа, вначале стандартные, потом пользовательские, каждому пользовательскому типу присваивается свой порядковый номер.
   short flags; // тут пока хз, есть только знание о флаге AsSeries
   int sizeoftype; // размер типа == sizeof(type)
   int dim1size; // размер 1-й рамерности
   int dim2size; // размер 1-й рамерности
   int dim3size; // размер 1-й рамерности
   int dim4size; // размер 1-й рамерности
   int reservedsize; // размер с учетом резерва (именно столько выделяется памяти)
   int ptr; // указатель
   int reserved1; //
   int reserved2; //
   int reserved3; //
   int reserved4; //
   int reserved5; //
};

Teorik olarak, bu bir fikir için gözlerin arkasında olmalı, onu uygulamaya çalışabilirsiniz.

Bugün için her şeyim.

 

Zamanınız için üzülmeyin...

MQ böyle şeyler yapmalıdır, aksi takdirde tüm bu işler, örneğin yeni bir yapının piyasaya sürülmesiyle boşa gidebilir.

Bu tür iyileştirmelere duyulan ihtiyacı doğru ve mantıklı bir şekilde haklı çıkarmak çok daha mantıklı olurdu, o zaman belki de MQ bunu "sipariş üzerine" yapardı.

 
komposter :

Bu tür iyileştirmelere duyulan ihtiyacı doğru ve mantıklı bir şekilde haklı çıkarmak çok daha mantıklı olurdu, o zaman belki de MQ bunu "sipariş üzerine" yapardı.

Bu MQ kesinlikle para getirmeyecek. bu yüzden kendini seç.
 
sergeev :
Bu MQ kesinlikle para getirmeyecek. bu yüzden kendini seç.
Önce NEDEN'i anlamanız gerekir. Ve bunun kullanımı nedir?

Ve katılımcılara teşekkürler, bu konudaki mesajlar sayesinde yardımdaki açıklamanın eski olduğunu buldum ...
 
mql5 :

Ve katılımcılara teşekkürler, bu konudaki mesajlar sayesinde yardımdaki açıklamanın eski olduğunu buldum ...

İlyas işte böyle denir :))

Arama girişimlerine bakarken tüm MK ekibinin midelerine tutunduğunu anlıyorum. Ve yardım çok yakındı... :)

ancak forumda, yapıyı yalnızca sayılarla restore edebilen ve neyin neyden sorumlu olduğunu anlayan gerçek profesyoneller olduğunu görüyorsunuz.


not

zaten düzeltildi mi?

Neden: