誰かの役に立つかもしれない:
または、RAMディスクを作成し、そこにファイルを置くこともできます。RAMディスクとは、コンピュータのRAMにある仮想ディスクのことです。
私はこのようなソフトを使ってラムディスクを作成していますhttp://ramdisk.nm.ru/ramdiskent-rus.htm
全部MQLに書き込んで、DLLなしで使えるようになればいいのに。
アレックス、ありがとう。
これをMQLに実装して、DLLなしで使えるようになればいいのだが。
残念なことに、すべての問題はMapViewOfFileという 1つの関数にある。 これはポインターを返すので、MQLで直接使うことはできない...配列にポインターを持ってくることはできないのだ。
他の関数(CreateFileMapping、OpenFileMapping、UnmapViewOfFile、CloseHandleの4つしかない)は呼び出すことができる。
。しかし、このMapViewOfFileだけは、MQLからマッピングを直接使って完全に機能する作品を作る機会を与えてくれなかった。残念なことに、私も本当に自作のDLLなしでやりたかったのだ。
残念なことに、すべての問題はMapViewOfFileという 1つの関数にある。 この関数はポインタを返すので、MQLで直接使うことはできない。配列にポインタを持ってくることはできないのだ。
他のすべての関数(CreateFileMapping、OpenFileMapping、UnmapViewOfFile、CloseHandleの4つしかない)は呼び出すことができる。
。しかし、このMapViewOfFileだけは、MQLからマッピングを直接使って完全に機能する作品を作る機会を与えてくれなかった。残念なことに、私自身も自作のDLLなしでやりたかった。
実は、あなたではなく、MQの開発者へのメッセージなのですが、この問題は古く、その解決策は明らかに需要があります。
ZY 私も同じような目的で、イベント経由で配列にポインタを渡す関数を書きました(ただしMTの内部で)。
この問題は古く、その解決策が求められているのは明らかだ。
そうそう、必要なものは必要なんだ。
コンバーター関数を作成するために何かをしたことがありますか?
例えば、あるdll関数がポインタを返すとする。たいていの場合、それは何らかの構造体へのポインタだろう。
そして次の作業は、この構造体からデータを取り出すことだ。構造体のサイズはわかって いるので、まずこのポインタをchar配列へのポインタに変換することができる。
ポインタを渡す中間DLL関数を使えば 、ポインタがこのchar配列を返すのだろうか?
さて、次にこのchar配列を単純に=構造体に転送する。
このようなDLLの関数の一種を紹介しよう。
void Convert(char *_in, char *_out) { _out=_in; }
mqlからこのように呼び出されます。
// 例えば、api関数はデータ構造へのポインタを返した。 int ptr=ФункцияИзАпи(); // へのポインタ ДанныеИзАпи struct ДанныеИзАпи { // apiからのデータ構造 16バイト }; struct refData { char byte[16]; // 同じ構造体のイメージ。 }; refData ref; Convert(ptr, ref.byte); // 配列へのポインタを変換 ДанныеИзАпи data=ref; // 単純なコピーによって構造体のフィールドを埋める
追記
memcpyというのを思いついたんだけど、これもポインタでコピーする。
またひとつ、MKに有利な石が増えた。
なぜこんなにいじくり回すのか?
自分たちの番組が本当に顔を台無しにするのだろうか?
実際、これはあなたに対する恨みではなく、MQ開発者へのメッセージであり、問題は古く、その解決策は明らかに需要があります。
問題は解決され、自作DLLを使わないMQL5のバイブルは無事に作成され、テストされました。
すでに出版用に送りました :)
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
メモリマッピング:
作者: o_O