PROFIからSUPER PROFIへの質問-1. - ページ 33

 

ありがとうございました。もちろん、これはすべて何度も読み返したことです。おそらく、すでに開いているディスプレイのサイズを大きくするための規定がないのでしょう。全部自分でやらなきゃいけないんですよ。

1.データをひとつひとつ新しいテンポラリーマッピングに移動させる。

2.古いものを閉じる。

3.サイズを大きくして新規に開く。

4.テンポラリーマッピングのすべてを、そこに一枚ずつ移動させる。

不気味な感じ。長いものには巻かれろ

 

リンク先では、異なるサイズのマッピングを開いてもデータは一貫している、つまり、実際にはすべてが1つの場所に保存されており、単に投影されている、と書かれています。

私が言いたいのは、コピーは必要ないかもしれないということです。

 

同じ名前で同じものなのか?その場合、同じマッピングが開きますが、新しいディスクリプタを使用します。まさにその通りです。サイズが大きくなることはありません。

すべてのディスクリプタを閉じてから、新しいサイズで開き直す必要があります。

データは、現在のプロセスのメモリを介してのみ、あるマッピングから別のマッピングに転送することができます。

 

やり方がわかった!

常に一時ファイルのファイルマッピングを開いて おく必要があります。最小で1バイトのサイズを持つ。ファイルマッピングを開くと、すべてがファイルに保存されます。その後、そのファイルのファイルマッピングを新しいサイズで開き直します。

 
試してみるしかないですね。
 
FAQ:

http://www.delphisources.ru/pages/faq/base/filemapping.html


dwMaximumSizeHighは共有メモリサイズ(4Gbt以上)の高い64ビット値で、そんなに必要ありません :)- この引数に値0を代入してみましょう。

dwMaximumSizeLow - この引数の説明の誤りを指摘してくれた王国の素敵な住人に感謝します!特に宇野さんは、とてもよく説明してくださいました(記事へのコメント参照) - 共有メモリサイズの下位64ビット値 - dwMaximumSizeHighが0の場合、この引数のサイズはスワップファイルに配置されるデータのSIZE以上でなければなりません。な お、インテルの「ページ」サイズは4KBt、つまり1バイトを指定すると「共有用のポケット」 :) 4KBt、4001を指定すると最大8Kbtのデータをファイルマッピングオブジェクトに入れることができる、など です。

このような気づきを与えてくれたことに感謝します。それは、もうひとつの問題の解決につながりました。

マッピングライブラリのメモリ保護を再調整しました。忘れてた。常にメモリ不足の警告が表示される。自動的に割り当ててもらっていますが。

昨夜、夢を見ました :-)

 
かなり長いExp(~3000)があり、すべてのコードが1つのブロックにあります(inludesとどちらもありません)ある時点で、外部変数のタブがなくなっています。バリエーションは?
 
プロパティライブラリは、コードのどこかに紛れ込んでしまったのでしょうか?
 
もう見つけたよ)
 
mishanya7777777:
なぜデモ口座では即時約定ができないのですか?
もうスパムはやめてくれ。スレッドまで作っておいて、スパム行為とはね。