10分でできるMQL5用DLLの書き方、データのやりとり」についてのディスカッション。 - ページ 5 123456789101112 新しいコメント Denis Kirichenko 2010.01.27 12:23 #41 mql5 писал(а) # :1) 端末のバージョンは32bitと64bitのどちらでしょうか? 2) dllのバージョンは32bitと64bitのどちらでしょうか?1)選択肢はあるのか?ここから ダウンロードできるのはx86だけだと思うのですが・・・。2)ディーゼル 32 Denis Kirichenko 2010.01.27 12:51 #42 MT5を再インストールしたところ、以下のような結果になりました。スクリプトを起動すると、 ログに 次の情報が表示されます。MQL5DLLSamples.dll'に関数 fnCalculateSpeedが見つかりません。念のため、 Dependency Walkerの ライブラリのスクリーンショットを添付しておきます。 Slava 2010.01.27 13:23 #43 denkir:MT5を再インストールしたところ、以下のような結果になりました。スクリプトを起動すると、 ログに 次の情報が表示されます。MQL5DLLSamples.dll'に関数fnCalculateSpeedが見つかりません。念のため、Dependency Walkerの ライブラリのスクリーンショットを添付しておきます。 再インストールした端末のビルド 番号を教えてください。 Renat Fatkhullin 2010.01.27 13:57 #44 stringo: 再インストールした端末のビルド 番号を教えてください。 どうやら最新の240ビルドではなく、古いようです。 Denis Kirichenko 2010.01.27 15:23 #45 Renat писал(а) # : どうやら古いようで、明らかに最新の240ビルドではありません。うん、絶対最後じゃないね...。240 bildにアップグレードした後、スクリプトの最初の実行は問題なく動作しました。興奮しました。しかし、その後の実行はクラッシュするばかり。MT 4が並行して動いていた。 Denis Kirichenko 2010.01.27 15:32 #46 再起動後、すべて正常に動作しているようです:-))関数fnCrashTest(int arr ) をコメントアウトしました。 ご協力いただいた皆様、ありがとうございました。 Andrey Dik 2010.02.04 22:02 #47 一般に、DLLを使った計算速度が2.5倍以上になったことはありません。これはMQL5の高速 性を示すもので、コードの保護が必要な場合や「重い」計算が必要な場合を除き、ほとんどの取引作業において、わざわざDLLを使う意味はないでしょう。 Renat Fatkhullin 2010.02.07 01:31 #48 joo: 一般に、DLLを使った計算速度が2.5倍以上になったことはありません。これはMQL5の高速性を示すもので、コードの保護が必要な場合や「重い」計算が必要な場合を除き、ほとんどの取引作業においてDLLに悩まされることはないでしょう。 MQL5の最終的なレジスタの最適化はまだ有効ではありません -実行速度は まだ真剣に増加します。 Anton 2010.02.21 22:14 #49 Renatさん、記事にしていただきありがとうございます。何度も必要になる方も多いと思います。dllに関連して横から質問です。(端末249、編集部248)。例1つの関数しかないlibra demo.dllがあります。_DLLAPI void __stdcall demo(char *stream, char *buf){ buf=stream;}mqlスクリプトdemo.mq5があります。#property copyright "2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #import "demo.dll" void demo(string s1, string &s2); #import void OnStart(){ string a="TEST"; string b; demo(a,b); Print(b); }コンパイラはエラーや警告を表示しない。ターミナルで実行すると、次のようになります。ビジュアルデバッグで確認したところ、demo.dllの関数自体の最初の文字が文字列ではないこともわかりました。という質問があります。何が問題なのか?MQLからDLLに文字列を人力で渡すには? Alexander 2010.02.21 23:06 #50 charの 代わりにwchar_tを 使用 する 123456789101112 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
1) 端末のバージョンは32bitと64bitのどちらでしょうか?
2) dllのバージョンは32bitと64bitのどちらでしょうか?
1)選択肢はあるのか?ここから ダウンロードできるのはx86だけだと思うのですが・・・。
2)ディーゼル 32
MT5を再インストールしたところ、以下のような結果になりました。スクリプトを起動すると、 ログに 次の情報が表示されます。MQL5DLLSamples.dll'に関数 fnCalculateSpeedが見つかりません。
念のため、 Dependency Walkerの ライブラリのスクリーンショットを添付しておきます。
MT5を再インストールしたところ、以下のような結果になりました。スクリプトを起動すると、 ログに 次の情報が表示されます。MQL5DLLSamples.dll'に関数fnCalculateSpeedが見つかりません。
念のため、Dependency Walkerの ライブラリのスクリーンショットを添付しておきます。
再インストールした端末のビルド 番号を教えてください。
どうやら古いようで、明らかに最新の240ビルドではありません。
うん、絶対最後じゃないね...。
240 bildにアップグレードした後、スクリプトの最初の実行は問題なく動作しました。興奮しました。しかし、その後の実行はクラッシュするばかり。MT 4が並行して動いていた。
再起動後、すべて正常に動作しているようです:-))
関数fnCrashTest(int arr ) をコメントアウトしました。
ご協力いただいた皆様、ありがとうございました。
一般に、DLLを使った計算速度が2.5倍以上になったことはありません。これはMQL5の高速性を示すもので、コードの保護が必要な場合や「重い」計算が必要な場合を除き、ほとんどの取引作業においてDLLに悩まされることはないでしょう。
Renatさん、記事にしていただきありがとうございます。何度も必要になる方も多いと思います。dllに関連して横から質問です。(端末249、編集部248)。
例
1つの関数しかないlibra demo.dllがあります。
mqlスクリプトdemo.mq5があります。
コンパイラはエラーや警告を表示しない。
ターミナルで実行すると、次のようになります。
ビジュアルデバッグで確認したところ、demo.dllの関数自体の最初の文字が文字列ではないこともわかりました。
という質問があります。
何が問題なのか?MQLからDLLに文字列を人力で渡すには?