エラー、バグ、質問 - ページ 1313 1...130613071308130913101311131213131314131513161317131813191320...3185 新しいコメント TheXpert 2015.05.23 15:44 #13121 Konstantin Karpov: コンパイル時に端末がどのビットモードかを判断する方法は?TERMINAL_X64 の 識別子は、関数用であるため、適合 しない。ヘルプに記載されていないマクロがある場合がほとんどですが、何らかの形で時折出てくることがあります :) 残念ながら、そうではありません。変数_IsX64がありますが、実行時に動作します。 削除済み 2015.05.23 15:51 #13122 32ビット端末用と64ビット端末用の2つのDLLを使用したいのですが、どうすればよいでしょうか?プログラムのコピーを2つ持っているのはカシコイ...。ところで、ME x64でコンパイルしたコードが32bit端末でエラーなく動作するのか、それともコード実行に何か隠し味があるのか、経験のある方はいらっしゃいますか? 削除済み 2015.05.23 16:39 #13123 例えば、32ビット端末用ライブラリlibrary_x86.dllと64ビット端末用ライブラリlibrary_x64.dllには、funcTest(...)関数が存在します。インポートが ファイル全体で見える場合、このような構成で書いてよいのでしょうか?void CClass::Test(...) { код метода... if(TerminalInfoInteger(TERMINAL_X64)) { #import library_x64.dll library_x64::funcTest(...); #import } else { #import library_x86.dll library_x86::funcTest(...); #import } код метода... } とか、この手は使えないのか? TheXpert 2015.05.23 17:34 #13124 Konstantin Karpov: それとも、この仕掛けが効かないのか?私の知る限りでは、そうではありません。両方のDLLをインポートして、端末のビットレートに応じてどちらかの機能を呼び出す ことができます。一般に、ビットレートによって2つのバージョンに分けることは、それほど妄想的な選択肢ではありません。 secret 2015.05.23 20:27 #13125 私は(標準セットのいずれか)インジケータを取り、Expert Advisorでそれを呼び出します。iCustom (NULL, 0, "Momentum", 0, 1);テスターで可視化したEAを実行したところ、すべてがうまくいき、インジケータも描画されました。ここで、インジケータの1行を変更します。ExtMomBuffer[i]=close[i]*100/close[i-InpMomPeriod];をこの行に追加します。ExtMomBuffer[i]=100;そして今、インジケータは全く何も描画しません。垂直スケールさえも マークされません。どこにエラーがあるのか?MetaTrader 4 build 765。 TheXpert 2015.05.23 20:43 #13126 スケールを表示させるためには、ウィンドウ内に2つの異なる値が必要なのですね。EMNIPバグと言えるかどうかは分かりませんが。 secret 2015.05.23 21:05 #13127 よし、型破りな行動とでも言おうか......(笑)。ありがとうございました。でも、もう一つ質問があります。ええ、こんな感じでしたよ。ExtMomBuffer[i]=i%2;そして、こうしてまた動かなくなったのです。ExtMomBuffer[0]=i%2;MTの古いバージョンでは動作していたのに、新しいバージョンでは何がいけないのでしょうか? TheXpert 2015.05.23 21:16 #13128 つまり、2つ目の選択肢では、値は1つです。実は、間違っているかもしれないんです。 secret 2015.05.23 21:28 #13129 まあ、こうやってやっても、うまくいかないんだけどね。ExtMomBuffer[0]=cnt++;問題の核心は、EAの各ステップでインジケータの0バーに書き込もうとしても、何も起こらないということです。 secret 2015.05.23 21:41 #13130 掘る場所を見つけたような気がします。変更ありArraySetAsSeries(ExtMomBuffer,false);に、何かが見え始めている。酔っぱらいに行くんだ 1...130613071308130913101311131213131314131513161317131813191320...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
コンパイル時に端末がどのビットモードかを判断する方法は?TERMINAL_X64 の 識別子は、関数用であるため、適合 しない。ヘルプに記載されていないマクロがある場合がほとんどですが、何らかの形で時折出てくることがあります :)
32ビット端末用と64ビット端末用の2つのDLLを使用したいのですが、どうすればよいでしょうか?プログラムのコピーを2つ持っているのはカシコイ...。
ところで、ME x64でコンパイルしたコードが32bit端末でエラーなく動作するのか、それともコード実行に何か隠し味があるのか、経験のある方はいらっしゃいますか?
例えば、32ビット端末用ライブラリlibrary_x86.dllと64ビット端末用ライブラリlibrary_x64.dllには、funcTest(...)関数が存在します。
インポートが ファイル全体で見える場合、このような構成で書いてよいのでしょうか?
とか、この手は使えないのか?それとも、この仕掛けが効かないのか?
私の知る限りでは、そうではありません。両方のDLLをインポートして、端末のビットレートに応じてどちらかの機能を呼び出す ことができます。
一般に、ビットレートによって2つのバージョンに分けることは、それほど妄想的な選択肢ではありません。
私は(標準セットのいずれか)インジケータを取り、Expert Advisorでそれを呼び出します。
テスターで可視化したEAを実行したところ、すべてがうまくいき、インジケータも描画されました。
ここで、インジケータの1行を変更します。
ExtMomBuffer[i]=close[i]*100/close[i-InpMomPeriod];
をこの行に追加します。
ExtMomBuffer[i]=100;
そして今、インジケータは全く何も描画しません。垂直スケールさえも マークされません。
どこにエラーがあるのか?MetaTrader 4 build 765。
よし、型破りな行動とでも言おうか......(笑)。
ありがとうございました。でも、もう一つ質問があります。ええ、こんな感じでしたよ。
ExtMomBuffer[i]=i%2;
そして、こうしてまた動かなくなったのです。
MTの古いバージョンでは動作していたのに、新しいバージョンでは何がいけないのでしょうか?
つまり、2つ目の選択肢では、値は1つです。
実は、間違っているかもしれないんです。
まあ、こうやってやっても、うまくいかないんだけどね。
ExtMomBuffer[0]=cnt++;
問題の核心は、EAの各ステップでインジケータの0バーに書き込もうとしても、何も起こらないということです。
掘る場所を見つけたような気がします。変更あり
に、何かが見え始めている。酔っぱらいに行くんだ