BasicBox: x86 PC emulator written in Visual Basic 6 Running… Visual Basic 6 github.com/mikechambers... www.reddit.com/r/EmuDev/com... #retrodev #emulation #emudev #retrocomputing #programming #vb6

I’ve been #programming in #VB6 #python #rust and the occasional easy #c project for close to two decades.

Still can’t figure out how #css works.

Кстати о. Есть ещё один способ получить даже более вдохновляющие результаты. Однажды мне потребовалось написать функцию, которая берёт байтовый буфер и форматирует его как в Hex просмотрщиках. Через строку всё делается очень просто, но очень долго. Всякие оптимизации не давали прямо радикального ускорения. Поэтому я написала функцию, которая сначала вычисляет размер байтового буфера, в котором будет содержаться ANSI строка, а потом по байтикам собирает эту самую строку. Быстродействие в результате такое, что даже реально большие массивы (по паре сотен метров) форматируются за считанные секунды. Главный минус – читается это не очень хорошо, нужно напрягать мозг после перерыва, чтобы понять, что происходит. Я хотела сделать такое же, но для генерации UUE, но до сих пор духа не хватает, хотя вариант со строками написала быстро и даже оптимизировала в итоге. #программизм #vb6
В последнее время я начала присматриваться к быстродействию своих программ в части операций с коллекциями и строками. Одну библиотеку радикально оптимизировала, например, применив новый для себя метод перечисления сразу двух коллекций одновременно (функциями из MSVBVM60.DLL, которые на самом деле стоят за For-Each, но избавляют от прямого взаимодействия с IEnumVARIANT). А началось с того, что меня до ужаса достала программа, парсящая логи ownCloud. Она сначала читает из файла идентификаторы обработанных сообщений в логах, потом парсит необработанные сообщения в файле лога, делая из JSON'ов в JSON'ах читаемые сообщения, сохраняет их в файлы сообщений и снова записывает файл с обновлёнными идентификаторами. И пока всё это продолжается, скрытое окно программы не обрабатывает сообщения, и всякие проводники, рассылающие широковещательные сообщения, вешаются при попытке открыться. Ранее я уже в программе снижала приоритет, чтобы не так грузило процессор. В этот раз я решила напихать DoEvents между обработкой JSON'ов, кою считала основной проблемой. Но оказалось, что загрузка списка занимала меньше секунды, парсинг – меньше секунды, сохранение списка – две-три минуты. Да, там была коллекция, которая долго перечислялась через индекс, а текст наращивался простым «TXT = TXT & Item». Поэтому я сделала так чтобы перечисление шло через «For Each», а текст собирала через Mid() в заранее выделенную строку, длину которой вычисляла отдельным перечислением. В результате программа вместо нескольких минут работает в районе секунды. Можно сказать, вдохновляющий результат! #программизм #vb6
Hat irgendjemand noch eine VB6 Lizenz rumliegen?

#VB #VB6
#askfedi
Netzgemeinde/Hubzilla

The following table contains possible examples of msvbvm60.dll being misused. While msvbvm60.dll is not inherently malicious, its legitimate functionality can be abused for malicious purposes.strontic.github.io
Как? Написанием вредоносной программы на VB, которая по дизайну будет использовать эти функции? #идиоты #программизм #vb6

msvbvm60.dll | Visual Basic Virtual Machine

What is msvbvm60.dll?

STRONTIC

Reverse engineering VB binaries will often involve reverse engineering VB internals for various VB APIs, a task dreaded by many. The entry point of a VB program diverts from the typical C/C++ or even Borland Delphi binary. There is no mainCRTStartup or WinMainCRTStartup function that initializes the C runtime and calls the developer defined main or WinMain function.rel="nofollow">blog.talosintelligence.com
Очевидное невероятное: программы, написанные на VB используют рантайм VB, а не рантайм C/C++, и не вызывают функции из рантайма C/C++! #идиоты #программизм #vb6

Discovering Dynamically Loaded API in Visual Basic Binaries

Performing analysis on a Visual Basic (VB) script, or when Visual Basic is paired with the .NET Framework, becomes an exercise of source code analysis. Unfortunately when Visual Basic is compiled to a Windows Portable Executable (PE) file it can become a nightmare for many malware analysts and reverse engineers.

Cisco Talos Blog
@volpeon Gosh, I could knock that up in a weekend using #VB6!

@notsle
I once saw 50 nested IIF calls.
And all on one line too. 🤦

#VB6

I know I'm very much reinventing the wheel here, especially because the wheel has been abandoned and whatever they're calling wheels these days require a supercar and a subscription at minimum to use and no one can build a wheel any more without a hundred people and a plan to burn money until a vulture swoops in to buy the burning husk for how bright it doth shine.

I *wish* this wasn't necessary, like I could just write some UI code and it'll run on any platform and it'll continue to do so forever no matter what new thing they add further down the line. Oh, wait, that already exists! It's called Visual Basic 6! I could write a GUI [to track the IP] in VB6 right now and it would run on Windows 95 through Windows 11 and via WINE on *nix.

Microsoft went on a bit of a bender in the 90s with COM, their object model, but they had the right idea if only lacking in execution (ActiveX...). If you want to embed a web-browser in your app you hook into the COM object and you're away. Different programming language? Doesn't matter. Different OS? Doesn't matter. Different *Endiness*!? Doesn't matter. Different physical location than the object? Doesn't matter, it works over the network!

Software is less modular than ever before; now "modular" just means the programmers used folders this time! Want to render a LibreOffice document inside your app? A PDF? A media player? How many years you got left?

#programming #windows #vb6 #retrocomputing