본문 바로가기
트레이딩/메타트레이더 코딩

MQL5. DLL. #import

by 리치굿맨 2019. 5. 19.

 

MQL5 에서 DLL 로딩하여 사용가능하며, #import 구문으로 감싸서 DLL 로딩하고 사용할 함수들의 선언들 나열하면, MQL5 코드내에서 해당함수 호출 할 수 있다. 

 

/// DLL 로딩예 
#import "D:\\CyFin\\64bit\\CyFinDevice.dll"

int OpenApi_CyFinDevice();
int CloseApi_CyFinDevice();

int Set_SymbolMaster_CyFinDevice(CyENUM_SYMBOL enum_symbol_master);
int Set_SymbolHandling_CyFinDevice(CyENUM_SYMBOL &penum_symbol[], int num_symbol);
int Set_TimeframeHandling_CyFinDevice(ENUM_TIMEFRAMES &penum_timeframe[], int num_timeframe);

#import

 

DLL 함수 인자로 사용가능한것. 

- 아래 안되는것 빼고 전부 다 사용가능.

#import 구문내에서 함수 인자로 지원되지 않는것.

Classes, string arrays or complex objects that contain strings and/or dynamic arrays of any types cannot be passed as a parameter to functions imported from DLL.

 

 

DLL 함수 인자로 함수포인터 전달도 불가함.

typedef void(*Cy_pF1)(int); // 함수포인터 타입선언.

#import "D:\\CyFin\\64bit\\CyFinDevice.dll"

int OpenApi_CyFinDevice_2(Cy_pF1 pf_apimain_cb); // 컴파일해보면 지원되지 않는다는 에러발생함.

#import

위 코드 컴파일하면 보여주는 에러 

 

 

 

 

#import 추가상세정보. 

https://www.mql5.com/en/docs/basis/preprosessor/import

 

Documentation on MQL5: Language Basics / Preprocessor / Importing Functions (#import)

#import "user32.dll" //--- For the 32-bit system int    MessageBoxW(uint hWnd,string lpText,string lpCaption,uint uType); //--- For the 64-bit system int    MessageBoxW(ulong hWnd,string lpText,string lpCaption,uint uType); #import //+---------------------

www.mql5.com

 

댓글0


   
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     선물 인버스 |선물 USDT