#import "MemoryDLL.dll"void fn(double j[]); // Подозреваю что так отдается адрес?#import
int start()
{
double dVal[1];
fn(dVal);
retutn(0);
}
これらのバリエーションでは、dll変数が普通に取れます。
extern"C" __declspec(dllexport) void fn(double &j); // Почему так работает????
// и такextern"C" __declspec(dllexport) void fn(double *j); // Думаю что должно работать только так
今、私に...
2012.02.26 15:47:46 Tester fileC:\Usersopenlive AppData ◇Roaming ◇MetaQuotes ◇Terminal ◇9C3619DDD286B60B1DB9B9989A2FFC701 ◇MQL5 ◇Files ◇signal10000.csv open error [32].
まず、C:³ Files³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³ Electronics Tools³©©C:³©C:³└└ C:³└
2つ目:MQL5にはエラー32がない。 おかしいな...。ファイルを開こうとした後のハンドルと、開こうとした後の最後のエラー コードを確認していますか?
数学モード」とは何ですか?
数式計算モード」とは何ですか?
このモードでは、OnTester()のみが呼び出されます。しかし、OnTester()での計算の複雑さと量は制限されません。 与えられた入力パラメータに対してExpert Advisorの利益を計算すれば、テスターの遺伝的アルゴリズムを使って 最適化することができます。
脳みそが沸騰しているので、理解できるようにお願いします。
1.x64 OSへの切り替えは、4GB以上のRAMを4バイトで「パーティション」することが不可能なことと関係していると理解しています。OSがx64なのですが、なぜポインタが4バイトも占有するのでしょうか(mqlだけでなくC++にも関係します))。
2.MT4に関する質問:DLL関数を呼び出すと、なぜか?
これらのバリエーションでは、dll変数が普通に取れます。
ポインタと参照は、私の場合、doubleへのポインタは4バイトを要するので、考え方としては互換性がないはずなのですが。
仕組みはこうです。
動作しない。
少なくとも、どのように動作するのでしょうか(複数の配列を渡したいのですが)?バックトラック経由ではやりたくない。
少なくとも、正しい方法(複数の配列を渡したい)を教えてください。裏口から入るのは嫌だからです。
また、MQLでは、関数宣言に&を付けるのは誰ですか?
そうですね、それが正しいかもしれませんね。でも、どうせC言語でMQLが動くわけでもないし(間違っているかも)。
そうですね、それが正しいかもしれませんね。どうせMKLだけCでどうにか動かないんだろ(間違ってるかも)。
渡し方に一つ違いがある - すべて参照渡しで、ポインタ渡しはクラスオブジェクトのみ
初歩的なメモリ領域は、アドレスと値の2つの部分から構成されていると考えていました。アドレスを伝送する場合は、何らかの変数に、伝送する領域のアドレスを「値」の欄に記述する必要があります。だから、このようなバリエーションが同時に正しく動作することが理解できないのです。
メモリ領域を「そのまま」転送し、受信側がそれをどうするか(値にアドレスを書き込むか、アドレスをコピーするか)を決める、というような説明を探してみることができます。しかし、この仮説は、こうはいかないという事実によって崩れる。
最初の複製では、「値」フィールドのアドレスが入力として与えられ、受信側がそれをどうするか決定する、という説明をもう一度探してみることもできるだろう。これに対して、C++では、コンパイラの意見などで、そうしないようにと言われているのが事実です。
またはこれ
すべてにおいて、矛盾しか見当たりません。聞いてくれたら、答えるよ。
リンクとポインターは本質的に同じものであるという結論に達しました。わずかな違いがあります。
非常に重要な点は、呼び出された関数が 参照やポインタを引数として持っている場合、そのアドレスが実際に渡されることです。これは、DELLから電話をかける際に非常に重要なことです。
ストキャスティクスの本線と指標線の交差の正確な値を求める方法を教えてください。
視覚的には簡単ですが、プログラム的にどう実装するか?