ライブラリ: DLLなしでのファイルマッピング - ページ 4

 
sergeev:
それをsizeof(<Type>)*<Number_Elements>のlong変数として扱えば、すべてがうまくいくだろう :)
つまり、このクラスはポインタだけを転送するために必要なのですね?配列を一度に使えると思っていたのに :(
 
baramantan:
このクラスはポインターを転送するためだけに必要なんですか?配列は一度に使えると思っていたのに :(
自分が何を聞いているのか気づいているのか?:)
 
sergeev:
sizeof(<Type>)*<Number_Elements>のlong変数として扱えば、すべてうまくいく :)

void OnStart()
{
CMemMapFile hmem;
int err=hmem.Open("local "text",111,modeCreate);

int data[];
ArrayResize(data,50);

err=hmem.Write(data,ArraySize(data)*sizeof(int));

ArrayInitialize(data,0);
hmem.Seek(0,SEEK_SET);
err=hmem.Read(data, ArraySize(data)*sizeof(int) );


hmem.Close();
}.

私のやり方は正しかったでしょうか?そうでない場合、何が間違っているのでしょうか?

 

baramantan:

私のやり方は正しかったのか?
デバッグに聞け。
 
sergeev:
デバッグに聞いてくれ、彼は100%知っている。

そして、なぜ矢印をずらして私の投稿に反応する必要があるのですか?

配列にintやdoubleを渡す方法を例で示せますか?

 

デバッグもできないのにどうやってチェックするんだ? 学校でコンピュータを使わずに黒板でコンピュータ・サイエンスを勉強するのに慣れているのか?

詳細や例を知りたければ、MSDNを読みなさい。


一般的に、人は不謹慎なものだ。彼らはすでにすべてをMQLに移し、コメントですべてをかみ砕いている。
だから、彼らがスリベーター用の関数も書くのは :) 変なことになる。

;)

 
sergeev:

デバッグもできないのにどうやってチェックするんだ? 学校でコンピュータを使わずに黒板でコンピュータ・サイエンスを勉強するのに慣れているのか?

詳細や例を知りたければ、MSDNを読みなさい。


一般的に、人は不謹慎なものだ。彼らはすでにすべてをMQLに移し、コメントですべてをかみ砕いている。
だから、彼らがスリベーター用の関数も書くのは :) 変なことになる。

;)

今、私はあなたがなぜ私の質問で私の投稿に入ったのか理解できません - あなたは本質的にそれらに答えたくないのであれば?編集部の皆さん、ショックです!
 

さて、私自身の質問に答えよう。私は、この中途半端な出来損ないを拾わなければならなかった。

このクラスはint型とdouble型の配列を扱えない。

宣言された関数はint型やdouble型の配列を受け取ることができない。このクラスはuchar型しか扱えない " virtual int Write(const uchar &buf[],int sz); // 指定されたバイト数をメモリに書き込む "

もし作者が自分の作ったものを完成させなければ、後で自分のものを投稿する。

ファイル:
MemMapLib.mqh  17 kb
MemMap.mq5  2 kb
 
baramantan:

自分の質問に答えよう。私は少し調べなければならなかった

というわけで、目的は果たしました :)


宣言された関数はint型やdouble型の配列を受け入れることができません。

ucharを受け付けるのであって、<some_needed_type>を受け付けるわけではないのだ。

同じように、あなたが言うところの「半完成品」であるこの関数に、文字列を含む構造体の配列を保存することを要求することもできる。なぜ作者は「私が必要とするデータフォーマット」を予想しなかったのか。

しかし、あなたは1つの普遍的な機能を与えられた。だから格納される。

どんなデータ型でも uchar配列(バイト読み)に変換できるので、このようなクラスとしては最も普遍的だ。

レシピをこねくりまわして、自分のニーズに合うように修正してみた。

uchar配列だったのがint配列になった。

。)
 
sergeev:

というわけで、目標は達成した。)

ucharが使えるのであって、<some_necessary_type>が使えるわけではない。

同じように、あなたが言うように、この「半完成品」に文字列を持つ構造体の配列を保存することを要求することができます。なぜ作者は「私が必要とするデータ形式」を予想しなかったのか。

しかし、あなたは1つの普遍的な機能を与えられた。だから格納される。

どんなデータ型でも uchar配列に変換できる(バイトを読める)ので、このようなクラスとしては最も普遍的だ。

以前はucharだったが、今はintだ。

ええ、進歩です :))

もちろん、私はメガプログラマーではない。ucharはユーザーを限定してしまうので、普遍的ではありえない:ucharは正の値にしか使えない。最小値は0、最大値は255だ。

ucharの値を超えたデータは、ucharの最大値または最小値と等しくなる。

この話を踏まえて、私は最初から「intやdoubleの渡し方」を質問した。課長の言いたいことは理解できない。