メタトレーダーのMQL言語でプログラミングする自動売買システム作成サイト メタシス・シーカー

メタトレーダーMQLプログラミング自動売買システム作成サイト メタシス・シーカー
メタトレーダーMQLプログラミング自動売買システム作成サイト メタシス・シーカー メタトレーダー関連書籍 メタトレーダーMQL言語リファレンス日本語翻訳マニュアル 準備中 準備中 このサイト「メタシス・シーカー」について

関数のインポート【Importing of functions】

プリプロセッサ【Preprocessor】
Functions are imported from compiled MQL4 modules (*.ex4 files) and from operating system modules (*.dll files). The module name is specified in the #import directive. For compiler to be able to form the imported function call and pass parameters in a proper way, the full description of functions is needed. Functions descriptions follow the #import "module name" immediately. The new #import command (can be without parameters) completes the imported functions description block.
関数は、コンパイル済みの MQL4 モジュール (*.ex4 ファイル) や、オペレーティング システムのモジュール (*.dll ファイル) からインポートされます。モジュール名は、#import 指示で指定されます。インポートされた関数の呼び出して、適切な方法でパラメータを渡すことが出来るように、コンパイラには関数の完全な記述が必要です。関数の記述は、#import [モジュール名] の直後に続けます。新しい #improt コマンド(パラメータなしで可)によって、インポート関数の記述ブロックが完了します。

#import "file_name"
    func1 define;
    func2 define;
    ...
    funcN define;
#import

Imported functions must have their unique names. Functions having the same names cannot be imported simultaneously from different modules. Imported functions names may not coincide with those of built-in functions.
インポートされた関数は、重複しない名前が必要です。同じ名前を持つ関数は、同時に別のモジュールからインポートすることはできません。インポート関数の名前は、組み込み関数のものと同じにしない方がよいです。

Since the imported functions are out of the module to be compiled, the compiler cannot check correctness of parameters passed. This is why, to avoid runtime errors, it is necessary to declare the compliance of types and order of parameters precisely. The parameters passed to imported functions (both from EX4 and from DLL modules) cannot have values by default.
インポート関数がコンパイル済みモジュールだと、コンパイラは渡されたパラメータの正当性をチェックできません。これは、実行時エラーを回避する為で、型に遵守した宣言や正確なパラメーターの指示が必要です。インポート関数(EX4、DLLモジュールの両方)に渡されるパラメータを初期値で設定することはできません。

Examples:
例:
#import "user32.dll"
   int    MessageBoxA(int hWnd, string lpText, string lpCaption, int uType);
#import "stdlib.ex4"
   string ErrorDescription(int error_code);
   int    RGB(int red_value, int green_value, int blue_value);
   bool   CompareDoubles(double number1, double number2);
   string DoubleToStrMorePrecision(double number, int precision);
   string IntegerToHexString(int integer_number);
#import "ExpertSample.dll"
   int    GetIntValue(int);
   double GetDoubleValue(double);
   string GetStringValue(string);
   double GetArrayItemValue(double arr[], int, int);
   bool   SetArrayItemValue(double& arr[], int,int, double);
   double GetRatesItemValue(double rates[][6], int, int, int);
   int    SortStringArray(string& arr[], int);
   int    ProcessStringArray(string& arr[], int);
#import

For importing of functions during execution of an mql4 program, the so-called late binding is used. This means that until the imported function has not been called, the corresponding module (ex4 or dll) will not be loaded.
MQL4 プログラムの実行中に関数をインポートするために、いわゆる、遅延結合が使用されます。これは、インポート関数が呼び出されるまでは、対応するモジュール(ex4、dll)が読み込まれないことを意味します。

It is not recommended to use the fully qualified name of loaded module appearing as Drive:\Directory\FileName.Ext. MQL4 libraries are loaded from the terminal_dir\experts\libraries folder. If the library has not been found, there will be an attempt to load a library from the terminal_dir\experts folder.
読み込まれたモジュールで Drive:\Directory\FileName.Ext にある完全修飾名を使用することは推奨できません。MQL4 ライブラリは、terminal_dir\experts\libraries フォルダから読み込まれます。もし、該当するライブラリが見つからない場合は、terminal_dir\experts フォルダからライブラリの読み込みを試みます。






トップページメタトレーダー関連書籍メタトレーダー日本語翻訳MQL言語リファレンス マニュアルこのサイト「メタシス・シーカー」についてサイトマップ
Copyright(C) 2009 MetaSys-Seeker.net All Rights Reserved.
免責事項:当サイト(メタシス・シーカー)のFx外国為替保証金取引、メタトレーダー、自動売買、システムトレード検証、サンプルプログラム、MQL言語リファレンスマニュアルなどの情報に関しては十分に注意した上で掲載するよう努めておりますが、その正確性を保証するものではありません。万一、当サイトに記載されている情報利用によって損害が生じても当サイト運営者は一切責任を負うものではありません。また、当サイトの内容や情報は予告なく変更、中止されることがありますことを予めご了承ください。掲載情報については、ご利用者自身の判断と責任でご利用ください。