Как переслать 3 параметра в одном флаконе?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Fencer
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 64
Зарегистрирован: 01.06.2005 (Ср) 16:19
Откуда: Новосибирск

Как переслать 3 параметра в одном флаконе?

Сообщение Fencer » 10.10.2005 (Пн) 10:22

Помнится, я писал, что делаю программу для просмотра копии экрана через LAN. В ней функцией BitBlt в PictureBox пихается DC вражеского дисплея. Но вот никак не соображу, как одной переменной отослать 3 параметра: Screen.Width, Screen.Height и DC (если отсылать по одиночке, то это занимает слишком много времени). Сделать свой тип переменных, где будут 2 параметра Integer, а 1 Long? Но как принимающее приложение поймёт, что это именно мой тип?То есть если переменная-буфер такого типа, то передать её ф-ции BitBlt? Или есть другой выход?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 10.10.2005 (Пн) 11:21

Может запихнуть их в строку с разделителями?... :wink:
А я все практикую лечение травами...

Fencer
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 64
Зарегистрирован: 01.06.2005 (Ср) 16:19
Откуда: Новосибирск

Сообщение Fencer » 10.10.2005 (Пн) 14:26

была такая мысля - я использовал свою дату рождения как разделитель (чтоб уж наверняка не совпало :) ). Но обработчик получился чудовищной структурой на полстраницы, полный багов, с 18 переходами if...then и 3 циклами for...next. Я отмёл этот вариант как чересчур замороченный и громоздкий. :cry:
Искал Гуглом и Яндексом.
Искал по форуму.
Спрашивал соседа.
Пытался сделать сам.
Спасибо за помощь ;)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как переслать 3 параметра в одном флаконе?

Сообщение alibek » 10.10.2005 (Пн) 15:24

Fencer писал(а):Или есть другой выход?

Есть. Перестать писать программы.

Screen.Width и Screen.Height имеют фиксированную длину, 4 байта (если Long) или 2 байта (если Integer). Вначале отсылаешь их, затем остальные данные (байтовый буфер DC).
Если ты отправляешь на удаленный хост значение hDC, то этот топик еще долго будет в лидерах на bash.org.
Lasciate ogni speranza, voi ch'entrate.

Fencer
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 64
Зарегистрирован: 01.06.2005 (Ср) 16:19
Откуда: Новосибирск

Re: Как переслать 3 параметра в одном флаконе?

Сообщение Fencer » 11.10.2005 (Вт) 11:04

alibek писал(а):Есть. Перестать писать программы.

Спасибо, но этот вариант отпадает :? Почему, не спрашивай - не буду объяснять :?
alibek писал(а):Если ты отправляешь на удаленный хост значение hDC, то этот топик еще долго будет в лидерах на bash.org.

А, собственно, почему? Какой ещё есть способ пересылки копии экрана? Я, например, не знаю (вот и задал вопрос). Ты, очевидно, знаешь. Если мои догадки верны - ответь, научи меня (возможно, я заблуждаюсь, но это смысл и цель существования этого форума). И что есть bash.org?
Искал Гуглом и Яндексом.
Искал по форуму.
Спрашивал соседа.
Пытался сделать сам.
Спасибо за помощь ;)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.10.2005 (Вт) 12:23

Почитай форум, на нем уже трижды (как минимум) поднимался вопрос пересылки экрана на другой комп.
Если ты пересылаешь на удаленный комп само значение hDC (GetDC(hWnd)), то это просто смешно, поэтому и bash.org. Если же отсылаешь содержимое буфера, то это будут тормоза и выше 5 FPS ты не получишь.
Буфер надо сжимать (алгоритмы сжатия также есть на форуме, но лучше использовать сторонние библиотеки или обертку tyomitchа GDI+), а только затем отсылать.
Размер буфера лучше передавать в начале пакета, а не в конце; во-первых, можно избавиться от разделителей, а во-вторых, это правильнее, на удаленном конце можно сразу зарезервировать буфер.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Как переслать 3 параметра в одном флаконе?

Сообщение tyomitch » 11.10.2005 (Вт) 18:32

alibek писал(а):Если ты отправляешь на удаленный хост значение hDC, то этот топик еще долго будет в лидерах на bash.org.

Не будет :-(
bash.org мне уже неделю как не отвечает, похоже совсем умер Изображение
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.10.2005 (Ср) 8:33

У меня тоже.
Но http://bash.org.ru работает.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Как переслать 3 параметра в одном флаконе?

Сообщение tyomitch » 10.11.2005 (Чт) 0:44

[всё равно тут сплошной оффтопик был, не начинать же новую тему?]

tyomitch писал(а):
alibek писал(а):Если ты отправляешь на удаленный хост значение hDC, то этот топик еще долго будет в лидерах на bash.org.

Не будет :-(
bash.org мне уже неделю как не отвечает, похоже совсем умер Изображение

Вау! Две недели как башорг поднялся!

Вот оттуда любопытная лирика:
roses are red
violets are blue
all my base
are belong to you
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 10.11.2005 (Чт) 10:23

Не могу удержаться ))))))

<Штирл> [08:29:35] <****> просто писал для девушки дллку и понял...
<Штирл> мде
<Штирл> кто-то там любовные письма и признания пишет
<Штирл> кто-то стихи...
<Moonlight> а девушка без длл не раболтала как надо?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Как переслать 3 параметра в одном флаконе?

Сообщение tyomitch » 17.11.2005 (Чт) 15:41

tyomitch писал(а):[всё равно тут сплошной оффтопик был, не начинать же новую тему?]

tyomitch писал(а):
alibek писал(а):Если ты отправляешь на удаленный хост значение hDC, то этот топик еще долго будет в лидерах на bash.org.

Не будет :-(
bash.org мне уже неделю как не отвечает, похоже совсем умер Изображение

Вау! Две недели как башорг поднялся!

А вон теперь bash.org работает, а bash.org.ru лежит :-(
Нет в мире щастья :cry:

интересно, ANDLL придерётся к орфографии?
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 190

    TopList  
cron