从专业人员到超级专业人员的任何问题 - 1。 - 页 33

 

谢谢你!当然,这些都已经读过很多遍了。也许没有规定增加已经打开的显示屏的尺寸。你必须自己做所有的事情。

1.将数据一块一块地移到一个新的临时映射中。

2.关闭旧的那个。

3.用更大的尺寸打开一个新的。

4.把所有东西从临时地图上一块一块地移到那里。

令人毛骨悚然。很长。

 

那里的链接说,当你打开同样的东西但不同尺寸的显示时,数据仍然是连贯的,也就是说,所有的东西实际上都存储在一个地方。 而只是被投影出来。

我的观点是,复制可能没有必要

 

是同名同姓的东西吗?如果是这样,就会打开同样的映射,但有一个新的描述符。这正是我所做的。尺寸不会增加。

你必须关闭所有的描述符,只有这样你才能用新的尺寸重新打开它。

数据只能通过当前进程的内存从一个映射转移到另一个映射。

 

想到了如何去做!

你应该总是打开一个文件 映射的临时文件。最小尺寸为1字节。当你打开文件映射时,一切都会自己保存在文件中。然后用一个新的尺寸重新打开这个文件的文件映射。

 
我必须要试一试。
 
FAQ:

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


dwMaximumSizeHigh是一个共享内存大小的64位高值(超过4Gbt)--我们不需要那么多:)- 让我们给这个参数赋值为0。

dwMaximumSizeLow - 感谢善良的王国居民,他们指出了这个参数描述中的错误!特别是乌诺先生,他解释得非常好(见文章注释)--共享内存大小的低64位值--如果dwMaximumSizeHigh等于0,这个参数的大小必须至少是SIZE OF DATA,才能放在交换文件中。请 注意,英特尔的 "页面 "大小是4KBt,即如果你指定1个字节,你会得到一个 "分享的口袋":)4KBt,如果你指定4001,你可以把最多8Kbt的数据放入文件映射对象,等等

特别感谢这一提醒。它有助于解决另一个问题。

重新设计了映射库中的内存保护。忘了它。不断弹出我的警告,说内存不足。不过我有自动分配。

昨晚做了一个梦 :-)

 
我有一个相当长的exp(~3000),所有的代码都在一个块中(没有inludes and either),在某些时候,带有外部变量的标签不见了。有什么变体吗?
 
是不是#属性库 在代码中的某个地方丢失了?
 
已经找到了 :)
 
mishanya7777777:
为什么在模拟账户中没有立即执行?
不要再发垃圾邮件了。你甚至已经创建了一个主题,但你仍然在发送垃圾邮件。