Особенности языка mql5, тонкости и приёмы работы - страница 197

 
fxsaber:

Это ALT+D на чарте.

Ого… А в указателе документации не показывает


 

Почему так и как исправить, путь нужен со слешем

#define   path      "/metatrader"


 
Vitaly Muzichenko:

Почему так и как исправить, путь нужен со слешем



//
 
Vladislav Andruschenko:

//

#define   path      "//metatrader"


 
Vitaly Muzichenko:


попробую угадать ...

///

 
Vladimir Karputov:

попробую угадать ...

///

Ничёсе )

Спасибо!

 
Vitaly Muzichenko:

Ничёсе )

Спасибо!

Че реально 3 ///
 
Valeriy Yastremskiy:
Че реально 3 ///

Реально да, это скомпилировалось, но на выходе получил 3 слеша, а нужен один. Проблему обошёл другим способом.

 

Кто подскажет, каким образом получить ID-железа, желательно процессора, ну или жёсткого диска.

Такой код что-то получает, но не понятно что

#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);
//---
  }
//+------------------------------------------------------------------+

мт4

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

мт5

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

---

В сети инфу не нашёл, но полагаю так, что за это отвечает другая .dll

 
Vitaly Muzichenko:

Кто подскажет, каким образом получить ID-железа, желательно процессора, ну или жёсткого диска.

Такой код что-то получает, но не понятно что

мт4

мт5

---

В сети инфу не нашёл, но полагаю так, что за это отвечает другая .dll

#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: на x86 архитектуре - инструкция прсессора cpuid. В msvs есть __cpuid(int[4],int) и __cpuidex(int[4],int,int). Примеры в сети есть.
Причина обращения: