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

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 コマンド(パラメータなしで可)によって、インポート関数の記述ブロックが完了します。

 

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:

例:

 

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 フォルダからライブラリの読み込みを試みます。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">