Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересует мнение трейдеров? Заведи опрос на форуме!
meneo
71
meneo 2012.03.12 19:46 

Добрый вечер всем!

  Есть 2 работающих примера:

#import "kernel32.dll"
  BOOL WINAPI WriteFile(HANDLE hFile, int &lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD &lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
#import

int data=100;

WriteFile(hFile,data,sizeof(data),byteWrt,NULL);

 и

struct STRUCT_DATA
  {
   int i;
   double d;
   bool b;
   datetime dt;
  };

#import "kernel32.dll"
  BOOL WINAPI WriteFile(HANDLE hFile, STRUCT_DATA &lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD &lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
#import

STRUCT_DATA data=100;

WriteFile(hFile,data,sizeof(data),byteWrt,NULL);

 оба примера по отдельности работают.

Подскажите, пжл, какой тип переменно lpBuffer указать у импортируемой функции, чтобы можно было передать переменную любого типа?

Спасибо! 

Документация по MQL5: Основы языка / Препроцессор / Импорт функций (#import)
Документация по MQL5: Основы языка / Препроцессор / Импорт функций (#import)
  • www.mql5.com
Основы языка / Препроцессор / Импорт функций (#import) - Документация по MQL5
220Volt
1175
220Volt 2012.03.12 20:18  
meneo:

Добрый вечер всем!

  Есть 2 работающих примера:

 и

 оба примера по отдельности работают.

Подскажите, пжл, какой тип переменно lpBuffer указать у импортируемой функции, чтобы можно было передать переменную любого типа?

Спасибо! 

#import "kernel32.dll"
  BOOL WINAPI WriteFile(HANDLE hFile, STRUCT_BASE &lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD &lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
#import


struct STRUCT_BASE
  {
  };

struct STRUCT_DATA : public STRUCT_BASE
  {
   int i;
   double d;
   bool b;
   datetime dt;
  };

struct STRUCT_INT : public STRUCT_BASE
  {
   int data;
  };
Попробуйте так. При вызове указывать размер структуры-наследницы ( sizeof( STRUCT_DATA ) или  sizeof( STRUCT_INT )  )
o_O
Модератор
23611
o_O 2012.03.12 21:19  
220Volt:
Попробуйте так. При вызове указывать размер структуры-наследницы ( sizeof( STRUCT_DATA ) или  sizeof( STRUCT_INT )  )

или просто размер переменной, чтоб не мучится с названием структур

STRUCT_INT aaa;

int a=sizeof(aaa);
meneo
71
meneo 2012.03.13 12:27  
Спасибо всем!
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий