msvbvm61.dll

Модератор: Хакер

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

msvbvm61.dll

Сообщение Хакер » 08.03.2008 (Сб) 22:56

Предисловие
Один товарищ тут пытался меня убедить, что, дескать, для работы программ, написаных на VB6 требуется не только msvbvm60, а ещё какие-то две две библиотеки. (LOL :lol: ).

Как выяснилось, второй из них была тоже msvbvm60, а третей - stdole2.tlb (опять же, LOL :lol: ). ТоварищЪ просто насмотрелся Project->Reference-ов. Но это ладно, товарищ хоть и глубоко заблуждался, но его попытки докать мне свою правоту навели меня на интересную мысль.

Собственно мысль заключается в следующем.



Мутант?
Так как новых VB уже (к превеликому сожалению) не будет, с msvbvm60 мы можем делать всё, что угодно. Поэтому, возникала идея написать МОД к ... VB6. Пишут же моды скажем, к GTA:San Andreas, почему бы не написать мод к VB? :)

Я не знаю заведомо, какое отношение было бы у Microsoft к этой затее, но, собственно, я ещё ничего не делал.

По моему (скромному?) мнению, VB6 страдает от недостатка огромного числа функций. Вобщем, куча функций, которые "ну просто должна быть" - отсутсвуют. Например, функции min(a,b) и max(a,b).

Идея заключается в следующем:
  • Мы берём MSVBVM60.DLL.
  • Извлекаем из неё TLB
  • Добавляем в библу свою секцию (кода), наполненную горой полезного функционала (мин, макс, всяческие сортировки, rnd-шки с неравномерным распределением, недостающую тригонометрию (арксинусы, там), обёртку над StrConv (добавляющую ANSI->OEM перекодирвки), и т.п.)
  • Добавляем туда свои классы (которые потом будут доступны в VB также, как класс Collection)
  • Прописываем все нововведения (функции, классы) в извлечённой TLB
  • Прописываем в TLB кроме своих функций ещё и vbvm-овские, которых в TLB нет, но которые очень полезны, GetMem/PutMem и прочие. Заодно можно вшить туда и Эданмоскую TLB (Эданмо обидится? :) ) и win32.tlb. Так мы можем избавться от необходимости вообще декларить какие-либо winapi - всё уже будет в vb. О константах тоже не забываем
  • Можем выкинуть ещё и секцию ENGINE (сэкономим 52 кб), лишив библу поддержки P-кода (кому он нафиг нужен? :lol: ). После чего библиотеку можно смело переименовывать в msvbrt60 (на манер msvcrt) :) .
  • Меняем в TLB все GUID-ы и название самой библы.
  • Зашиваем TLB обратно в библу, меняем msvbvm60 на msvbvm61.

Запускаем VB6 и вуаля - все новые сущности ждут нас. (Есть конечно такой вариант развития событий, что нас будет ждать сообщение об ошибке, но это вряд ли)

Что думаете? :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 09.03.2008 (Вс) 11:34

Идея грандиозная и интересная! Но осуществима ли?
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 09.03.2008 (Вс) 13:28

Вполне осуществима.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 09.03.2008 (Вс) 13:55

Вопрос 'между делом':

VB при написании кода не будет никак реагировать на напечатанные функции min,max и т.д. (Окрашивание, подсказки, проверка синтаксиса) ?

Жаль что я не смогу принять участия в таком клёвом проекте! :(
В нашем деле главное ЛОГИКА.

косил косой косой косой.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 09.03.2008 (Вс) 14:07

Окрашивание будет происходить по штатной схеме. Кейворды - синим. То что будет добавлено - не кейворды, поэтому подкрашиваться синим не будет. Цифры, строки внутри добавленно будут подкрашиваться как обычно.

Подсказки? - Какие?
Ctrl+I? - конечно будет. И в Object Browser-е всё появится. И по Ctrl+J будет доступно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 09.03.2008 (Вс) 14:53

Хакер
Это хорошо!

А внедряться всё это будет на асме или на си?
В нашем деле главное ЛОГИКА.

косил косой косой косой.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 09.03.2008 (Вс) 14:54

Не понял вопроса.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 09.03.2008 (Вс) 16:17

Внедрятцо это будет, я подозреваю, на проводнике)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 09.03.2008 (Вс) 20:50

Хакер
Я вот про это:
# Добавляем в библу свою секцию (кода), наполненную горой полезного функционала (мин, макс, всяческие сортировки, rnd-шки с неравномерным распределением, недостающую тригонометрию (арксинусы, там), обёртку над StrConv (добавляющую ANSI->OEM перекодирвки), и т.п.)


Или я не так что-то понял?
Обьясни если я не понял...
В нашем деле главное ЛОГИКА.

косил косой косой косой.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 09.03.2008 (Вс) 20:53

Я понял, что ты про это. Но я не понял, что значит "внедряться на каком-то языке".
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 09.03.2008 (Вс) 21:20

Gemini
Это они прикалываются. На асме, канешн.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 09.03.2008 (Вс) 21:21

Денис
На VB, не хочешь?. Нефиг отвечать за других.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Krasavica
Небожительница
Небожительница
Аватара пользователя
 
Сообщения: 1378
Зарегистрирован: 04.11.2003 (Вт) 17:51
Откуда: Россия, город-герой Москва ;-)

Сообщение Krasavica » 09.03.2008 (Вс) 23:01

Нет худа без добра))))
я - ангел!!! ...просто крылья в стирке, а нимб на подзарядке!
Меня трудно найти, легко потерять и невозможно забыть.Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 09.03.2008 (Вс) 23:09

Господа (и дамы тоже), оставляем мнения насчёт идеи.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 10.03.2008 (Пн) 14:55

Я считаю, что это пустая затрата времени. Лично мне эта библиотека ненужна, так как прийдется таскать с собой "msvbvm61.dll".

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3979
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 10.03.2008 (Пн) 15:44

Что только не придумывают, лишь бы не переходить на VC++... :roll:
Идея слишком "грандиозная" (а потому провальная в рамках форума), и бесперспективная.
char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4256
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 17.03.2008 (Пн) 12:48

Но было бы весьма неплохо!
label:
cli
jmp label

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 05.04.2008 (Сб) 4:09

Флаг тебе в руки! Идея великолепна... я бы рад перейти на vbvm61 =) мне с vb6 расставаться нехочется...
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 05.04.2008 (Сб) 11:01

Единтсвенное, что меня не устраивет в ВБ - это обработчик ошибок, если в моде можно сделать другой(Try), то я десятью руками за!
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 05.04.2008 (Сб) 15:47

Классная мысль. Очень полезная и удобная штука выйдет. :)
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3827
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 05.04.2008 (Сб) 16:14

Matew
На счет обработчика ошибок согласен.
Хакер
Не вижу особого смысла в переделке существующей DLL. Кто мешает все нужные ф-ции собрать в отдельной DLL?
Я бы хотел наоборот, избавить VB6 от кучи лишнего, в идеале вообще избавить от msvbvm60.dll, пусть при этом мы потеряем все, сделанное в редакторе форм и контролов, строковые ф-ции, различную финансовую белиберду (не окончательно потеряем, подключаем в References msvbvm60.dll, и готово, все вернулось). Чтобы оставалась только простая математика, модули, классы, ф-ции, основные языковые конструкции.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.04.2008 (Сб) 16:20

Mikle
1) Полностью избавиться от vbvm не получится, т.к. там кроме рантайма ещё и значительная часть особо-фажный функций, отвечающих за сам язык (например реализация оператора New - __vbaNew и __vbaNew2 - без которых невозможен полноценный ООП).
2) Смысл пихать всё это в TLB от VBVM заключается в том, что каждый раз не нужно подключать какие-то свои TLB-шки, всё уже будет "в языке" сразу после запуска среды.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Сообщение Александр Дмитриев » 05.04.2008 (Сб) 22:44

Отличная идея. Финансовую белиберду удалять однозначно. Можно ещё удалить DirListBox и аналогичное, по-моему, если они большие. Думаю, ещё можно многое удалить - решай сам (я, например, никогда ещё не пользовался большинством классов из библиотеки VBRUN, всем, что связано с OLE).

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3827
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.04.2008 (Вс) 9:56

Хакер
Если вернуться к начальному вопросу, то есть не "что выкинуть", а "что добавить", то я хотел бы битовые сдвиговые ф-ции, ROR, ROR, ASL ...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.04.2008 (Вс) 10:03

А что за ASL?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3827
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.04.2008 (Вс) 10:22

Инструкций шесть - арифметический, логический и циклический сдвиги вправо и влево. Арифметический и логический сдвиги влево совпадают, то есть фактически их пять.

ASL
ASR

LSL = ASL
LSR

ROL
ROR

Мог напутать названия.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.04.2008 (Вс) 10:24

Насколько я знаю, это всё инструкции не IA32-процессоров, а, например, ARM-ов.

У нас же есть SHL (сдвиг влево), SHR (сдвиг вправо), ROL (ротация влево), ROR (ротация вправо).

Как сдвиг может быть арифметическим или логическим я не представляю.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3827
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.04.2008 (Вс) 10:41

Хакер
При сдвиге вправо можно сохранять знаковый бит, а можно загонять нули, в этом разница.
А названия я попутал, точно :roll:

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16111
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.04.2008 (Вс) 10:43

Это надо было бы называть Partial Shift а не Arithmetic Shift :)

А зачем это может быть нужно?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 3827
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.04.2008 (Вс) 10:48

Название из мануала по ассемблеру еще под ДОС.
Сейчас пишу двоичное дерево поиска, смотрел AVLTree, показалось не оптимально, пытаюсь родить свое, активно использующее сдвиги и битовую логику. Это только один пример.

След.

Вернуться в Мой блог

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

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

    TopList