MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 642

 
Alexey Viktorov:

問題は、インクルードファイルとは何か、ライブラリとは何かということを理解することです。

コンパイラは、.mqhファイルから使用されている部分を「つまみ食い」して、.mqhファイルがない場合でも動作する実行ファイルをコンパイルするのです。

ライブラリを参照するプログラムを使用するすべてのコンピュータに、ライブラリが存在する必要があります。これは非常に不便で、使っている人はほとんどいない、私は知らない。

ライブラリのことは忘れて、インクルードされたファイルを理解することをお勧めします。

まあ、どっちが何を使うのが快適か、議論すればいいんですけどねー。
 
Alexey Viktorov:

問題は、インクルードファイルとは何か、ライブラリとは何かということを理解することです。

コンパイラは、.mqhファイルから使用されている部分を「つまみ食い」して、.mqhファイルがない場合でも動作する実行ファイルをコンパイルするのです。

ライブラリを参照するプログラムを使用するすべてのコンピュータに、ライブラリが存在する必要があります。これは非常に不便で、使っている人はほとんどいないのでは、ないでしょうか。

ライブラリのことは忘れて、インクルードファイルで対応することをお勧めします。

まさにその通りです。

そのためのファイルを用意しました。

DLLではなく、よく使う関数を格納した.MQ4(.EX4)ファイルです。

問題は、EA本体でこれらの機能が問題なく動作していることです。

が、INCLUDEで接続したファイルに転送すると、上記のようなエラーが発生します。

その理由は見当たらない。

 
Sergey Maksiutenko:

まさにその通りなんですね。

そのためのファイルを用意しました。

DLLではなく、使用頻度の高い関数を格納した.MQ4(.EX4)というファイルです。

問題は、EA本体でこれらの機能が問題なく動作していることです。

が、INCLUDEで接続されたファイルに転送すると、上記のようなエラーが発生します。

その理由は見当たらない。

ごめんなさい、冗談でしょう?

//+------------------------------------------------------------------+
//|                                                      my func.mqh |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"


//+++++++++++++++++++++++++++
#property strict 
//+++++++++++++++++++++++++++
#import "my_func.ex4"
int calc (int a,int b);
#import 

//+------------------------------------------------------------------+
//| defines                                                          |
//+------------------------------------------------------------------+
// #define MacrosHello   "Hello, world!"
// #define MacrosYear    2010
//+------------------------------------------------------------------+
//| DLL imports                                                      |
//+------------------------------------------------------------------+
// #import "user32.dll"
//   int      SendMessageA(int hWnd,int Msg,int wParam,int lParam);
// #import "my_expert.dll"
//   int      ExpertRecalculate(int wParam,int lParam);
// #import
//+------------------------------------------------------------------+
//| EX5 imports                                                      |
//+------------------------------------------------------------------+
// #import "stdlib.ex5"
//   string ErrorDescription(int error_code);
// #import
//+------------------------------------------------------------------+

わざと線を強調したんだ......何が言いたいんだ!!!!

 
Vitaly Gorbunov:

ごめんなさい、冗談でしょう?

わざと線を強調したんだ......何が言いたいんだ!!!!

#property strict 

コンパイラに特別な厳密エラーチェック・モードを適用するよう指示する。

 
Sergey Maksiutenko:

コンパイラに特別な厳密なエラーチェック体制を適用するように指示する。

これは何を意味するのでしょうか?

 
Sergey Maksiutenko:

コンパイラに特別な厳密なエラーチェックモードを適用するよう指示する。

上記で直接リンクしたhttps://docs.mql4.com/ru/mql4changes search for export

検索の使い方がわからない方は、こうして探してみてください!!!!

!!!!

Обновленный MQL4 - Справочник MQL4
Обновленный MQL4 - Справочник MQL4
  • docs.mql4.com
Начиная с билда 600 язык программирования MQL4 полностью переработан и достиг уровня MQL5 - теперь писать торговых роботов на MQL4/MQL5 можно в единой среде разработке MetaEditor и используя единые стиль, библиотеки и инструменты отладки. MQL4 пользуется заслуженной популярностью среди разработчиков автоматических торговых систем благодаря...
 

こちらも同じ!!!

#property library
//+++++++++++++++++++++
#property strict
//+++++++++++++++++++++
//=========================
int calc (int a,int b)
{
int c = a + b;
return(c);
}
さて、あなたの間違いはどこにあるかわかりますか?
 
Vitaly Gorbunov:

こちらも同じ!!!

さて、あなたの間違いはどこにあるかわかりますか?

残念ながら、私には理解できない...。

教えてください...

 
Sergey Maksiutenko:

残念ながら、私には理解できない...。

教えてください。

ライブラリの プロパティを意味する場合

確認したところ...

これがないと、ライブラリファイルはコンパイルすらできません
 

あまり厳しいことを書かないように煙に巻いて、#property strictとは何かを説明しようと思っています。