Visual Basic 6.0 - Byte Array(Variant) and API (Part 2)
Re: Byte Array(Variant) and API (Part 2)
From: Alexander Trishin <trialFORSPAM [@] trishin.com>
Alexander Trishin wrote on Mon, 13 Oct 2003 22:45:23 +0000 (UTC):
> VARIANT* v = static_cast<VARIANT*>((void*) buf);
> if ( v->vt != (VT_ARRAY | VT_UI1)) return 0;
> SAFEARRAY *sf = static_cast<SAFEARRAY*>((void *)v->pparray);
> BYTE *data = static_cast<BYTE*>((void*) sf->pvData);
> for (int i = 0; i < sf->rgsabound[0].cElements; i++)
> {
> BYTE b = data[i];
> // do something with BYTE
> }
Аааа, я понял, ты то же хочешь сделать на VB. Hу по CopyMemory это у нас
Дима мастер :) Код вверху точно работает ;)
--
AT
* Origin: Demos online service (2:5020/400)
Re: Byte Array(Variant) and API (Part 2)
From: Alexander Trishin <trialFORSPAM [@] trishin.com>
Alexander Asyabrik wrote on Mon, 13 Oct 2003 13:53:32 +0000 (UTC):
> Я пишу, в этом смысле, _универсальную_ ActiveX DLL. И в соответствии с
> идеями COM технологии, должна быть возможность использовать ее в любой
> среде, эту технологию поддерживающую. Вот и пытаюсь соответствовать.
Hапиши свою универсальную ActiveX DLL на Visual C++ с ATL. Это
относительно просто и многое понимать даже не надо - само будет работать
:) И никаких тебе msvbvmxx.dll :)
--
AT
* Origin: Demos online service (2:5020/400)
Re[3]: Byte Array(Variant) and API (Part 2)
From: "Dmitry Viazowkin" <vde [@] ufanet.ru>
Hi Alexander!
Так, я не с начала - поэтому глупые вопросы. ОТКУДА ты этот компонент вызываешь?
Я довольно много занимался обратным - принимал вызовы из VB Сшной либлиотекой и
возвращал значения - и довольно часто ронял VB или получал сообщение
"Hеподдерживаемый тип ВАРИАHТа". Hу не умеет БАСИК многого... Так что этот твой
компонент скорее всего нуждается в дополнительном парсинге получаемого
значения - копируем полученные 14 байт в описанную у себя структуру tagVARIANT и
ручками, ручками...
> Лирическое отступление:
> Смотрю на чужие постинги и думаю себе: нормальные люди задают
> нормальные вопросы типа как программно создать директорию или кнопку
> на форме, где скачать MSDN:), а от меня вечно исходит какая-то
> бредятина. Аж неудобно мне как-то...
Гыыы... Поднял настроение ;))) Кто как, а я на тех нормальных людей нормальный
такой твит ставлю...
--
With best regards
Dmitry Viazowkin
ЗЫ. Если не трудно - то мне хотелось бы увидеть образцы вызова и описание
вызываемой функции.
* Origin: Me? Organized??? (2:5020/400)
Вопpосец
Hi, All!
В фоpме кyча текстбоксов, а пеpеход идет только по Tab и
мышильдой. Как задать что-то дpyгое?
С yважением, Yury.
* Origin: Познание начинается с yдивления. (2:5022/115.65)
Re: Вопpосец
Привет , Yury!
Всего наилучшего , Yury!
Вторник Октябрь 14 2003 года (а было тогда 11:46)
Yury Fokin в своем письме к All писал:
YF> В фоpме кyча текстбоксов, а пеpеход идет только по Tab и
YF> мышильдой. Как задать что-то дpyгое?
Через KeyPress. Будет по клавиатуре.
* Origin: Death is out there ... (2:5022/177.91)
Re: Векторный графический редактор
From: "Sergey Broudkov" <broudkov [@] nir.ru>
Hello, Andrey!
You wrote to All on Sun, 12 Oct 2003 13:20:28 +0400:
AS> У кого-нибудь есть тутор или пример сабжа, или где сие можно найти
AS> (URL) Особенно интересует как сделать прокрутку области рисования и
AS> векторное увеличение/уменьшение.
Без всяких примеров, идея проста: перед выводом пересчитываешь все
координаты, учитывая смещение области вывода (прокрутка) и коэффициенты
масштабирования.
X1 = A * X + X0
Y1 = B * Y + Y0
(X, Y) - старые координаты, (X1, Y1) - новые, (X0, Y0) - смещение, (A, B) -
масштабирование.
AS> PS: Все процедуры рисования и проч должны быть реализованы с помощью
AS> API функций, а иначе тормозной редактор получится ;)
Параметры преобразования координат можешь подобрать так, чтобы результат был
в сразу в пикселах. Дальше смело применяй API. Дальнейшая оптимизация - в
отсечении невидимых объектов по границе окна. Проще всего так: с помощью
обратного преобразования пересчитываешь координаты окна вывода в свою
систему координат, далее для каждого объекта вычисляешь охватывающий
прямоугольник (min X(i), min Y(i)) - (max X(i), max Y(i)). Если эти два
прямоугольника не пересекаются - бросаешь этот объект и переходишь к
следующему, экономишь на пересчете координат и выводе невидимых объектов, к
тому же охватывающий прямоугольник можно вычислить только один раз и хранить
его вместе с массивом координат объекта. Существуют более изысканные
алгоритмы отсечения, найди любую книжку по компьютерной графике.
--
Regards,
Sergey Broudkov
sbpro [@] geocities.com
ICQ #4841919
А может, в реестре чего подправить? d;--D
* Origin: Demos online service (2:5020/400)
Re: Byte Array(Variant) and API (Part 2)
From: "A. Skrobov" <tyomitch [@] r66.ru>
Hello, Alexander!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov" <fido7.ru.visual.basic [@] talk.ru>to A. Skrobov on Mon, 13 Oct 2003
20:51:39 +0000 (UTC):
AA>>> Где данные-то искать?
AS>> А ты просто посмотри на все поля варианта, авось в каком-то нужный адрес
AS>> лежит.
AA> В первом 16-битном поле лежит тип варианта. Потом три 16-битных
AA> пустых (0), ну и в последнем Dword-e некое значение. Использование его,
AA> как указатель для записи в файл вешает VB. Если это указатель на какую-то
AA> структуру, то на какую?
А ты скопируй в массив лонгов начало (байт 16-20) этой структуры, там может и разберёмся.
With best regards, A. Skrobov. E-mail: tyomitch [@] r66.ru
--
* Origin: Talk.Mail.Ru (2:5020/400)
Есть такая фyнкция в VB?
Здpавствyй, Dmitriy!
02 октябpя 2003 г. (21:37) Dmitriy Kozyrev ---> Mihail Borisov:
MB>> Есть ли в VB .NET такая фyнкция котоpоя может опpеделить является
MB>> ли число четным или нет?
DK> Dim lValue As Long
DK> ' ...
DK> Dim bOdd As Boolean
DK> bOdd = lValue And 1
Все веpно, только я не понял почемy?
Вpоде бы все, что отличается от ноля = true
тогда 21 and 1, должно веpнyть true
и 20 and 1, должно веpнyть то же самое, а возвpащает 1 и 0.
?????
--== Пpивет и масса наилyчших... С yважением, Dem.==--
* Origin: This program is zapported by all systems. (2:4615/96)
MSDN
Как поживаете, Alexej ?
Мои бортовые системы запеленговали, что в Понедельник Октябрь 13 2003 23:28, Alexej Bobylev писал All:
AB> Великий ALL, может у тебя есть свежий MSDN или может ты знаешь где
AB> его можно скачать ?
Выкачивал еще летом, за живучесть ссылок не отвечаю ;)
http://download.microsoft.com/download/b/d/c/bdccea1b-96d9-4ad9-8045-56619af958 35/qtr40enud1.img
http://download.microsoft.com/download/b/d/c/bdccea1b-96d9-4ad9-8045-56619af958 35/qtr40enud2.img
http://download.microsoft.com/download/b/d/c/bdccea1b-96d9-4ad9-8045-56619af958 35/qtr40enud3.img
C уважением, Андрей.
* Origin: Сейчас буду из него пищевод добывать! (2:5023/11.81)
FileName, FilePath
From: "Jeremy Diaz" <jeremy [@] uph.com.ua>
Хаюшки всезнающий Олл!
Как на VB.NET реализовать аналог делфяшных функций ExtractFileName,
ExtractFilePath из OpenFileDialog1.FileName() property?
Премного благодарен!
С ув. Юрий!
* Origin: Unknown (2:5020/400)