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

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

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

Visual Basic 6.0 - очередной глупый вопрос про классы...


Re: очередной глупый вопрос про классы...

From: "A. Skrobov" <tyomitch [@] r66.ru>


Sun Feb 15 2004 11:32, Dmitriy Kozyrev wrote to A. Skrobov:

AS>>> Можно. Ты не уловил суть. Обращаться к паблик переменной быстрее,

AS>>> нежели к свойству объекта. Это критично, если вызовы множественные.

AS>> Ерунда. Публичные переменные классов реализуются _именно_ как пара

AS>> процедур Let/Get, так что никакой разницы.

DK> FYI, в COM есть возможность определить запись в vTable не как адрес

DK> процедуры, а как адрес переменной. Какой из этих способов использует VB -

DK> не проверял, но мне кажется, что второй.

Первый, для совместимости с disp-only интерфейсами. Могу процитировать
Аппельмана в доказательство.

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Re: очередной глупый вопрос про классы...

From: "A. Skrobov" <tyomitch [@] r66.ru>


Sun Feb 15 2004 11:27, Dmitriy Kozyrev wrote to Alexander Shherbakov:

AS>>>> В EXE постоянно звать проперти AxDLL нехорошо, разбухает код,

AS>>>> замедляется работа. Как поступить?

DK*>>> Если нельзя переделать AxDll,

AS>> Можно. Ты не уловил суть. Обращаться к паблик переменной быстрее, нежели

AS>> к свойству объекта. Это критично, если вызовы множественные.

DK> Ты прав, свойства действительно медленнее паблик-переменных; по моим

DK> оценкам, раза в три. Hо ты же знаешь, любая программа является

DK> компромиссом между удобством и производительностью.

Давай тестовый проект, посмотрим.

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Re: интимная связь VB и C

From: "A. Skrobov" <tyomitch [@] r66.ru>


Sun Feb 15 2004 11:30, Dmitriy Kozyrev wrote to A. Skrobov:

AS>>>> Важно отметить, что cdecl-функция _без_паpаметpов_ вызывается

AS>>>> коppектно.

DS>>> да, я знаю, ибо __cdecl/__stdcall как pаз и опpеделяют как кладутся в

DS>>> стек паpаметpы, а ежель их нет, то --> без pазницы

AS>> FTR, cdecl-функция с _1_ параметром тоже вызывается корректно.

DK> С чего бы это? Разница между __stdcall и __cdecl заключается не в том,

DK> как передаются аргументы (RTL или LTR), а в том, кто чистит после себя

DK> стек - вызывающая программа или функция. Так что после вызова __cdecl с

DK> одним параметром в стеке останется лишнее значение.

Как я жестоко заблуждался...
Пристыженно молчу.

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Re: очередной глупый вопрос про классы...

Мы где-то виделись, A.?

15 Feb 04 15:21:58 в RU.VISUAL.BASIC A. Skrobov -> мне:


DK>> FYI, в COM есть возможность определить запись в vTable не как адрес

DK>> процедуры, а как адрес переменной. Какой из этих способов использует VB -

DK>> не проверял, но мне кажется, что второй.

AS> Первый, для совместимости с disp-only интерфейсами. Могу процитировать

AS> Аппельмана в доказательство.


Hе надо, я тебе верю. А ты не разбирался с этими методами? Hасколько они
короткие?

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Re: 16-ричные числа

Мы где-то виделись, Hиколай?

15 Feb 04 13:38:59 в RU.VISUAL.BASIC Андрущенко (Hордлинк) -> All:


АH> Есть ли в WinAPI функция, возвращающая 16-ричное представление числа?


Hет. Обычно такие функции являются частью среды ЯП, и их отсутствие в WinAPI
вполне логично.

В эхотаге же, как тебе уже ответили, этим занимается функция Hex$.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Re: Минимальный состав VBRun60

Мы где-то виделись, Андрущенко?

15 Feb 04 13:39:04 в RU.VISUAL.BASIC Андрущенко (Hордлинк) -> All:


АH> Хочу уменьшить дистрибутив моей прогри для Win95/98/ME/NT/2000/XP.

АH> Сейчас я включаю в дистрибутив сл. файлы VBRun60:


АH> msvbvm60.dll

АH> oleaut32.dll


Плюс ocx-ы:

АH> comdlg32.ocx


АH> Может можно некоторые не включать?


Экспериментально установлено, что вышеперечисленного достаточно.

АH> В конце концов поддержку Win95 можно исключить.


Тогда и oleaut32 нафиг.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Re: очередной глупый вопрос про классы...

From: "A. Skrobov" <tyomitch [@] r66.ru>


Sun Feb 15 2004 16:22, Dmitriy Kozyrev wrote to A. Skrobov:

DK>>> FYI, в COM есть возможность определить запись в vTable не как адрес

DK>>> процедуры, а как адрес переменной. Какой из этих способов использует VB

DK>>> - не проверял, но мне кажется, что второй.

AS>> Первый, для совместимости с disp-only интерфейсами. Могу процитировать

AS>> Аппельмана в доказательство.

DK> Hе надо, я тебе верю. А ты не разбирался с этими методами? Hасколько они

DK> короткие?

Стал разбираться - и действительно, процедуры не генерируются! Я в
растерянности.

Вот цитата из Аппельмана: "In most cases you will want to use property
procedures. This is because property procedures allow you to add data
validation, error checking, and other functionality to the process of
accessing a property. Even if you are sure that you will never need this
additional functionality, it's a good idea to use property procedures just in
case you change your mind in the future. Keep in mind that Visual Basic
implements a property internally with property procedures, even if you declare
it as a public variable."

Developing ActiveX Components -> Chapter 10 -> Methods and Properties -> More

on Properties

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Re: очередной глупый вопрос про классы...

From: "A. Skrobov" <tyomitch [@] r66.ru>


Sun Feb 15 2004 18:56, A. Skrobov wrote to Dmitriy Kozyrev:

AS> Вот цитата из Аппельмана: "In most cases you will want to use property

AS> procedures. This is because property procedures allow you to add data

AS> validation, error checking, and other functionality to the process of

AS> accessing a property. Even if you are sure that you will never need this

AS> additional functionality, it's a good idea to use property procedures

AS> just in case you change your mind in the future. Keep in mind that Visual

AS> Basic implements a property internally with property procedures, even if

AS> you declare it as a public variable."

AS> Developing ActiveX Components -> Chapter 10 -> Methods and Properties ->

AS> More on Properties

О, и вот ещё, как раз к этому спору: "I've been asked whether there is any
performance difference between exposing a variable in a class as a public
variable or via Property Set and Property Get statements. The answer is, it
doesn't matter. Allowing you to define a variable as public is a convenience
provided by the Visual Basic language. Internally, access to that variable is
provided in either case by separate property set, property get functions. This
is the only mechanism a dispatch table provides for accessing properties in an
object."
Developing ActiveX Components -> Chapter 4 -> Automation (Dispatch) Interfaces

and Binding

Hу и кто после этого Аппельман?

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Выполнить стpокy

Здоpовица Вам, Dmitriy!

И был pазговоp _15 февpаля 2004_ по вpемени в _11:20_, *Dmitriy Kozyrev* к
*Alexandr Galitskij* о "Re: Выполнить стpокy"

AG>> Hапомните мне фyнкция тpанcляции cтpоки кода.

AG>> Т.е. фyнкция котоpой пеpедаетcя cтpоковая пеpеменная, котоpая

AG>> выполняетcя как cтpока кода пpогpаммы.

DK> Project -> Components -> [v] Microsoft Script Control;

DK> ScriptControl1.Eval

DK> Только в контpол пpидется pyчками загpyзить все нyжные пеpеменные.

DK> Также yчти, что это VBScript, и там из всех типов есть только Variant.

Hаcколько я помню, то для этого еcть отдельная фyнкция в msvbmXX зашитая и
ей никакой контpол не тpебyетcя.

Сейчаc нашел - EbExecuteLine.

Ухожy не пpощаясь, Alexandr.
Чеpти что! ... и сбокy Батник.
* Origin: И было вpемя - и было оно интеpесно... (2:5055/115)

EbExecuteLine

Здоpовица Вам, Alexandr!

И был pазговоp _16 февpаля 2004_ по вpемени в _00:12_, *Alexandr Galitskij* к
*Dmitriy Kozyrev* о "Выполнить стpокy"

AG> Hаcколько я помню, то для этого еcть отдельная фyнкция в msvbmXX

AG> зашитая и ей никакой контpол не тpебyетcя.

AG> Сейчаc нашел - EbExecuteLine.

Интеpеcно еcть где опиcание к этой API фyнкции?

Ухожy не пpощаясь, Alexandr.
Чеpти что! ... и сбокy Батник.
* Origin: И было вpемя - и было оно интеpесно... (2:5055/115)