Современные решения

для защиты Windows приложений

и восстановления исходного кода

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)