10分でできるMQL5用DLLの書き方、データのやりとり」についてのディスカッション。 - ページ 9

 
Renat:

技術レベルを向上させるべき。

64ビットのプログラムには64ビットのライブラリが必要で、32ビットのライブラリを合理的に接続することは不可能です。32ビット版をインストールするには、インストーラーを/32スイッチ付きで実行する必要があります。

記事を書き直し、MetaEditorやMT4、MT5プラットフォームでとっくに実装されているクールな機能を追加する予定です。新機能を知らない開発者も多い。

Renatさん、ご返信ありがとうございます。今のマーケットはかなり複雑で、トレーディングはほとんど手も足も出ず、テクニカルな分野を向上させる時間はほとんどないのが現状です。32bitと64bitのプログラムの違いが本当にわからない。ユーザーにとって不必要な問題を引き起こすとしか思えません。誰もがどこかに運転しているし、マイクロソフトを含め、彼らはより速く、より突然に取得したいが、ユーザーは問題ばかりが発生します。64bitと32bitで速度の差はないですね。しかし、私のプロセッサはi7-4、つまり最新のIntelであるため、もしかしたらこのせいかもしれません。また、マイクロソフトはC++を圧縮しているようですね。前回のコンパイラでは、C++のフォームで作業するオプションを削除してしまったほどです。と尋ねると、「なぜ?答えは、より完璧な新しいC++を試してみてはどうかということだ。ですから、将来を見据えるのであれば、それも考慮に入れたほうがいいでしょう。
 
ANG3110:


そして、マイクロソフトがC++の圧縮を始めたんですね。最新のコンパイラでは、C++でフォームを扱う機能まで削除されました。と尋ねると、「なぜ?その答えは、新しくなったC++を試してみてはどうかということだ。だから、将来を見据えるなら、それも考慮に入れるべきでしょう。

マイクロソフトは悪名高いテクノロジーキラーであり、最近では自ら墓穴を掘っているようなものだ。

なぜ干渉するのか--自分の穴に落ちればいいのだ。それは比喩的に、技術的な細部に時間を浪費しないためである。誰が詳細を知りたがっているのか。インターネット上には何千もの情報があるのだ。より良いC#」の次は、「より良いC#」以外の言葉はない。

 
:)
 
同僚、VSでMTライブラリを接続するにはどうすればよいですか。
 
Renat Fatkhullin:

技術レベルを向上させるべき。

64ビットのプログラムには64ビットのライブラリが必要で、32ビットのライブラリを合理的に接続する方法はありません。32ビット版をインストールするには、インストーラーを/32スイッチ付きで実行する必要があります。

記事を書き直し、MetaEditorやMT4、MT5プラットフォームでとっくに実装されているクールな機能を追加する予定です。新機能を知らない開発者も多い。

64ビット版端末用の64ビットDLLを作成する例はありますか?そして、"クールなもの "について、知ることは興味深いことです)
 

簡単なことがわかった!

無料のVisual Studio Community 2015を インストール(Expressと違ってx64対応なのでまさにCommunity) 有料版はもちろんx64もあるのですが、無料のオプションを見ていたのです。Webインストーラーがエラーを出したので、ISOイメージからインストールしました。インストール時に「カスタム」インストールを選択し、C++にチェックを入れる(デフォルトではインストールされていない)。

そして、記事に書かれているようにすべて、つまりWin32のプロジェクトを作成しました。アセンブリを作成したが、x64端末は(予想通り)受け入れを拒否した。

そして、「ビルド」→「構成マネージャ」タブで、プラットフォームをx64に変更しました(「アクティブソリューションプラットフォーム」をx64に変更することも可能です)。


再び構築した。新しいDLLは \x64Debug フォルダ(最終ビルドは x64Release フォルダ)にあることがわかり、x64 端末で問題なく処理され、以下の出力が返されました。

19:29:01.883 dll_test (EURUSD.e,H1) Time 16 msec, int: -752584127 double: 17247836076609.0.
19:29:01.883 dll_test (EURUSD.e,H1) Array: 0 1 2 3 4 5 6 7 8 9
19:29:01.883 dll_test (EURUSD.e,H1) Replace: A quick brown cat jumps over lazy dog
19:29:01.886 dll_test (EURUSD.e,H1) Access violation at 0x000007FEFB0F176F write to 0x000000000000 in '...\MQL5Libraries' ConsoleApplication1.dll'.
と、傍受されたエラーの詳細な説明
つまり、すべてがうまくいくのです!!!

Downloads | Visual Studio
Downloads | Visual Studio
  • www.visualstudio.com
Visual Studio Community 2015 with Update 1 - Free Visual Studio Community 2015 with Update 1 is a free, fully featured, and extensible IDE for individual developers, open source projects, academic research, education, and small professional teams. Create applications for Windows, Android, and iOS as well as web applications and cloud services...
 


DLLを他のコンピュータに転送すると、VS自身のコンポーネントを使用しているため、動作が拒否されました。プロジェクト→プロパティ→MFCの使用で、「静的ライブラリにMFCを使用する」に設定することで解決しました。その後、DLLをリビルドして再コンパイルします。

フォーラムで発見。

DLLを使用したEAの最適化は、ローカルコンピュータだけでなく、ローカルネットワーク上でも可能です。ネットワークコンピュータでこれを行うには、テストエージェントのレジストリに/dllsキーを追加します。レジストリエディタの呼び出し:regedit

Renat Fatkhullin:

インストールされたエージェントの場合、スタートアップコマンドはレジストリのHKEY_LOCAL_MACHINE ³³CurrentControlSet ³³ServicesMetaTester-XXXX のブランチにのみ変更することができます。

各 ImagePath パラメータをクリックし、行末に/dlls を追加するだけです。


 

ZeroMQをDLLでMT4にバインドしている最中です。

なんとなくとてもまずい。インジケーターの起動時やアンロード時に端末が常にクラッシュしてしまう。しかもデバッグモードでは 表示されないので、何が起こっているのかわからない。

 

こんにちは。

なぜか、テストサンプルを実行すると、インポートされた関数の 最初の呼び出しでスクリプトがクラッシュする

2016.07.30 23:30:14.088 スクリプトスクリプト mql5dll_test (EURUSD,H1) を削除しました。

私は何を間違えているのだろう?

 
EsEr:

こんにちは。

なぜか、テストサンプルを実行すると、インポートされた関数の 最初の呼び出しでスクリプトがクラッシュする

2016.07.30 23:30:14.088 スクリプトスクリプト mql5dll_test (EURUSD,H1) を削除しました。

私は何を間違えているのだろう?

この記事は6年前のもので、何かが変わっているはずです。

エラーコードは何ですか?