エラー、バグ、質問 - ページ 1662

 
fxsaber:

なぜ警告が平然と出ているのか?

uchar を用いたこの関数のオーバーロードはありません。シャアしかいない。そのため、定数が127より大きいと警告が出るのです。
 
Sergei Vladimirov:
uchar を用いたこの関数のオーバーロードはありません。シャアしかいない。そのため、定数が127より大きい場合、警告が出るのです。
なぜこのエラーは全く発生しないのですか?uchar配列にはオーバーロードがないため(参照が真である場合)。
 
Alexey Viktorov:

もし、真実に近い値が表示されても、間違ったデータでカウントしている場合は、テスターやビジュアライザーではなく、mql5に問題があることが判明します。

一般的に、参加に感謝します、私は長い目でこの問題と戦うつもりです。そして今日、別の同じような通貨の部分をチェックする予定 です。この場所でのダニの問題かもしれませんね、hhzさん?

確認しました。すべて正常にカウントされます。どうやら物語の中の特定の場所でダニの発生に バグがあるようです。
 
fxsaber:
では、なぜエラーが全く出ないのでしょうか?uchar配列のオーバーロードはありません(ヘルプが正しければ)。
さて、これは妥当な質問である。
 
fxsaber:
では、なぜエラーが全く出ないのでしょうか?uchar配列にはオーバーロードがないため(ヘルプが正しければ)。
charとucharの違いは、コンパイラによる解釈の違いだけです。 実際、何も切り捨てられていないので、警告は出ないはずです。
 
Alexey Navoykov:
charとucharの違いは、コンパイラの解釈の違いだけです。 実際には何も切り捨てられていないので、警告は出ないはずです。
そこにバイト単位でコピーされる。だから、すべての符号付き<->符号なしと。
 
A100:

しかし,これは(typedefを使った以前のものも含めて)付随的なエラーです。(この例のように)ソースプログラムには同じシグネチャを持つtypedefが存在しないため,主なエラーはまだ見つかっていません。

実行中にエラーが発生するソースプログラムに近いテストスクリプトを作ることができました

//Script1.mq5
typedef int (*GTW)( uint, uint, int );
#import "Script2.ex5"
        void f( GTW );
#import "Script3.ex5"
        int g( uint, uint, int );
#import
void OnStart() { f( g ); }
//Script2.mq5
#property library
typedef int (*GTW)( uint, uint, int );
void f( GTW ff ) export { ff( 0x1, 0x1, 0 ); }
//Script3.mq5
#property library
int g( uint, uint, int ) export
{
        Print( __FUNCSIG__ );
        return 0;
}

結果: 'Script2.mq5' での無効な関数 ポインタ呼び出し

そして、今度はトリック...。- すべてのファイルのGTWをGTに置き換えて、結果を確認する !

 

このような関数を正しく書き換えるには、構文についてアドバイスをお願いします。

MqlTick Func()
{
  MqlTick Tick = {0};
  
  return(Tick);
}

というようなものに

MqlTick Func()
{
  return(MqlTick(0));
}

とか、こんな感じです。

MqlTick Func()
{
  return(new MqlTick);
}

つまり、返すべき構造体を作る部分を別に書かない。

 

最近(1ヶ月ほど前から)、「仕事」のサービスプロジェクトについて 議論する際に、引用やイラストを含むクソほどの量のテキストを入力した後、それを提出すると、すべてが...403番ホール


フォームを再送信しても解決しない。ページを再読み込みした後、もう一度すべてを入力しなければならない。

編集長殿、ユーザーのためにどんな新しい革命が発明されたのか、どうすればそこから抜け出せるのか、説明していただけませんか。
 
Alexander Puzanov:

最近(約1ヶ月前)、「仕事」のサービスプロジェクトについて議論して以来、引用やイラストを含む糞量のテキストを入力した後、それを提出した後、すべてがになります...403番ホール


フォームを再送信しても解決しない。ページを再読み込みした後、もう一度すべてを入力しなければならない。

編集長殿、ユーザーのためにどんな新しい革命が発明されたのか、どうすればそこから抜け出せるのか、説明していただけませんか。
エディターの左上で、常にHTMLボタンを押し、大きな投稿をする前にCTRL+A、CTRL+Cを押してください。そうすれば、すべてがバッファーにとどまります。そして、エラーが発生した場合。再度HTMLボタンを押し、CTRL+A、CTRL+Vを使用する必要があります。ストレスが軽減されますよ。