記事"МetaTrader 5からWCFサービスを利用し.NETアプリケーションにクオートをエクスポートする方法"についてのディスカッション - ページ 3

 
上記を実行する上で、私はいくつかの困難に遭遇した。誰かが同じような問題に直面したときのために、このことをお伝えしておきます。


1) x64ターミナルを使用している場合、C++プロジェクトをx64で再コンパイルする必要があります。念のため、次の方法で実行してください: Visual Studio -> (C++プロジェクトの) プロパティ -> 構成マネージャ -> ドロップダウンリストまたは <新規...> から x64 に変更します。コンパイルする。完了。
2) EAに問題があり、初期化すらできませんでした。EAをチャートから切り離すとき、エラー initが失敗した ときに初めて気づきました(おかしい...)。EAは初期化段階で無限スリープに 陥り、その原因はすべて(QService.mqhの)これらの行にありました:

 QService::EnterCriticalSection()
{
   while (GlobalVariableCheck("QService_CriticalSection") > 0)
   Sleep(1);
   GlobalVariableTemp("QService_CriticalSection");

デバッグと、この "Sleep(1) "を理解するための試行錯誤の後、私はコードを次のように置き換えた:

QService::EnterCriticalSection()
{
   if(!GlobalVariableCheck("QService_CriticalSection"))
   GlobalVariableTemp("QService_CriticalSection");
}

ところで、この記事はMT4にも当てはまります。MT4にはDDEがありますが、私はこのアプローチの方が好きです。

追伸:この記事の著者に感謝します!すべてがクールです!
 
QEXPORTWRAPPERは64ビットのターミナルでは動作しません。
 
shelandr1:
とても興味深い...ありがとう...しかし、今日ではもっと簡単なオプション*があるのでは?

もちろんありますよ。ターミナルに内蔵されている機能を使って接続するんです。PIPEチャンネルだ。

https://www.mql5.com/ru/docs/files/fileopen

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

この記事に基づいて新しい仕事を投稿しました:https://www.mql5.com/en/job/34392

私のMT5 64ビット環境では動作しません....

素晴らしい記事です!

ありがとうございます。

Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
  • www.mql5.com
Hi, I'm a C# developer and downloaded the code from the article "HOW TO EXPORT QUOTES FROM METATRADER 5 TO .NET APPLICATIONS USING WCF SERVICES" ( https://www.mql5.com/en/articles/27 ). The problem is that my machine is a Windows 64 bits with MetaTrader 5 64 bits installed and I had to change the compile configurations to 64 bits in Visual Studio 2012. Ok, it compiled normally, then I added one new method that aims to return a string to MT5 which i called ReadBroker2MeInstructions . Compiled...
 

知識として、私の64ビットマシンで何が起こったかを発見した。

何時間も何時間も調べてデバッグした結果、参照されているアセンブリの1つがロードされておらず、例外「System.IO.FileNotFoundException.Unable to load file or assembly 'QExport.Service, Version=1.0.5771.13857:Unable to load file or assembly 'QExport.Service, Version=1.0.5771.13857, Culture=neutral, PublicKeyToken=56996a45dd1e337b'」という例外が発生しました。

多分、dllに設定ファイルがないためだと思いますが、MT 5はアセンブリがどこにあるのか分かりませんでした。そのため、ベースパス(metaeditor64.exeがあるパス)で取得しようとしていました。参照されているプロジェクトの 出力ディレクトリをそのパスに変更したところ、見事に動作しました。

 
sabe:

ジョーさん、こんにちは、

x64で動作させるには何か特別なコツが必要ですか?x64用にコンパイルしたのですが、起動時に変なエラーが出てDLLがクラッシュしてしまいます。

以下の私の回答を参照してください。

[]'s

 

こんにちは、


あなたの完成したファイルをテストしました。しかし、WinClientにはデータがありません。







 

ヒストリカル・バーをプリロードする同様のプロジェクトは ないだろうか?Lightweight-Chartにすべて追加して、チャートを便利に使いたいのですが。