Caractéristiques du langage mql5, subtilités et techniques - page 197

 
fxsaber:

C'est ALT+D sur le graphique.

Wow... Et ça n'apparaît pas dans l'index de la documentation


 

Pourquoi et comment le réparer, le chemin a besoin d'un slash

#define    path      "/metatrader"


 
Vitaly Muzichenko:

Pourquoi et comment le réparer, le chemin a besoin d'un slash



//
 
Vladislav Andruschenko:

//

#define    path      "//metatrader"


 
Vitaly Muzichenko:


Laissez-moi essayer de deviner ...

///

 
Vladimir Karputov:

Laissez-moi essayer de deviner ...

///

Wow !)

Merci !

 
Vitaly Muzichenko:

Wow !)

Merci !

C'est quoi un vrai 3 ///
 
Valeriy Yastremskiy:
Che vraiment 3 ///

Il a compilé, mais la sortie était 3 slashs, alors que la sortie ne nécessitait qu'un seul slash. Le problème a été résolu d'une autre manière.

 

Qui peut me dire comment obtenir l'ID du matériel, de préférence le CPU ou le disque dur.

Ce code obtient quelque chose, mais ce n'est pas clair.

#property strict

struct SYSTEM_INFO {
   uint              dwOemId;
   uint              dwPageSize;
   long              lpMinimumApplicationAddress;
   long              lpMaximumApplicationAddress;
   ulong             dwActiveProcessorMask;
   uint              dwNumberOfProcessors;
   uint              dwProcessorType;
   uint              dwAllocationGranularity;
   ushort            wProcessorLevel;
   ushort            wProcessorRevision;
};
SYSTEM_INFO sys;
#import "kernel32.dll"
   void GetNativeSystemInfo(SYSTEM_INFO &system_info);
#import
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  GetNativeSystemInfo(sys);
  Print(sys.dwOemId);
  Print(sys.dwPageSize);
  Print(sys.dwActiveProcessorMask);
  Print(sys.dwNumberOfProcessors);
  Print(sys.dwProcessorType);
  Print(sys.dwAllocationGranularity);
  Print(sys.wProcessorLevel);
  Print(sys.wProcessorRevision);
//---
  }
//+------------------------------------------------------------------+

mt4

0       18:35:40.363    P EURCAD,M30: 9
0       18:35:40.363    P EURCAD,M30: 4096
0       18:35:40.363    P EURCAD,M30: 281474976719320
0       18:35:40.363    P EURCAD,M30: 705101830
0       18:35:40.363    P EURCAD,M30: 0
0       18:35:40.363    P EURCAD,M30: 0
0       18:35:40.363    P EURCAD,M30: 0
0       18:35:40.363    P EURCAD,M30: 0

mt5

FF      0       18:34:33.778    P (EURCAD,M30)  9
PR      0       18:34:33.778    P (EURCAD,M30)  4096
CO      0       18:34:33.778    P (EURCAD,M30)  15
EG      0       18:34:33.778    P (EURCAD,M30)  4
QQ      0       18:34:33.778    P (EURCAD,M30)  8664
FM      0       18:34:33.778    P (EURCAD,M30)  65536
EH      0       18:34:33.778    P (EURCAD,M30)  6
MS      0       18:34:33.778    P (EURCAD,M30)  10759

---

Je n'ai pas trouvé d'informations sur le net, mais je pense qu'une autre .dll en est responsable.

 
Vitaly Muzichenko:

Qui peut me dire comment obtenir l'ID du matériel, de préférence le CPU ou le disque dur.

Ce code obtient quelque chose, mais ce n'est pas clair.

mt4

mt5

---

Je n'ai pas trouvé d'informations sur le net, mais je pense qu'une autre .dll est responsable de ce problème.

#ifdef __MQL5__
   #define  LPVOID long
#else
   #define  LPVOID int
#endif
#define  DWORD_PTR LPVOID

struct SYSTEM_INFO {
   uint              dwOemId;
   uint              dwPageSize;
   LPVOID            lpMinimumApplicationAddress;
   LPVOID            lpMaximumApplicationAddress;
   DWORD_PTR         dwActiveProcessorMask;
   uint              dwNumberOfProcessors;
   uint              dwProcessorType;
   uint              dwAllocationGranularity;
   ushort            wProcessorLevel;
   ushort            wProcessorRevision;
};
upd : sur l'architecture x86 - instruction cpuid prsessor. Le msvs a __cpuid(int[4],int) et __cpuidex(int[4],int,int). Des exemples sont disponibles en ligne.