Предел размера буфера обмена

Есть ли предел размера данных, которые могут быть скопированы в буфер обмена? Я использую VB6 и потребность скопировать блоки данных в буфер обмена.

1
задан 24.08.2009, 14:33

3 ответа

Для добавления чего-то к буферу обмена необходимо выделить память для данных сначала, затем передать дескриптор этого блока памяти к буферу обмена. Поскольку приложения WIN32 ограничены 2 ГБ памяти, объем памяти, который Вы могли выделить, будет связан с размером RAM, это все еще доступно в Вашем приложении. С дополнительным/3GB параметром в boot.ini Вы могли сделать эту сумму немного больше. И если Ваша система будет иметь меньше чем 2 ГБ RAM, то увеличивание размера файла подкачки также поможет отправить до 2 ГБ. Конечно, клиентское приложение также должно смочь использовать эти данные. При попытке к ели не будут работать 1 500 МБ данных в процессе, который только имеет 600 МБ в наличии.

Но если Вы действительно хотите отправить огромные блоки данных, используйте временные файлы вместо этого! Один прием был бы при помощи COM-интерфейса. Создайте свой собственный COM-класс сначала, который должен перенести данные, где данные должны быть основаны на файле. Затем создайте временный файл и добавьте свои данные к этому файлу. Создайте COM-объект, который связывается с этим временным файлом, и отправьте COM-объект клиенту. Клиент должен смочь обработать COM-объект также, но мог затем использовать его для извлечения данных из него снова. Это теоретически предоставило бы Вам неограниченное пространство памяти. Недостаток: необходимо записать COM-класс и знать то, что Вы делаете.

Или используйте другие методы для отправки по данным. Именованные каналы, почтовые слоты, TCP/IP... Существует много альтернативных межпроцессных методов для отправки данных между двумя приложениями.

Так как Вы используете VB6, я не запущу об опциях WIN64 или.NET.

1
ответ дан 17.12.2019, 01:03

Зависит от объема памяти в системе.

0
ответ дан 17.12.2019, 01:03

Большинство данных копируется как ссылка, а не сами данные, таким образом, можно скопировать больше всего что-либо любой размер. Текст, хотя на самом деле копируется и с того, что я знаю объем данных, ограничен тем, насколько поршень в настоящее время availiable. Помните это, если vb6 может обработать его, я уверен, что буфер обмена может обработать его.

0
ответ дан 17.12.2019, 01:03

Теги

Похожие вопросы