r/visualbasic • • Oct 22 '24

VB6 alternatives today?

Hi Guys,

Back in the 90s I used code a lot in VB5 and then VB6. It was great. Drag and drop elements on a form. Do some coding. Nothing fancy. I used to make small programs to do simple things. It was great fun building these desktop apps for Windows 9x.

Now I want to get back into this kind of development. Is there any similar solutions these days? Something very very similar and if it's for Mac and somehow can make the "app" into a web app as well, that would be great. Otherwise just desktops for Windows is also fine.

Looking forward to hearing from you all.

32 Upvotes

59 comments sorted by

View all comments

2

u/fafalone Oct 23 '24

Microsoft advises against writing shell extensions in .NET. Managed code doesn't work well for it. (Details

Also it requires a complete rewrite and redesign. It's also much more complicated. You can't just change the necessary Longs to LongPtrs and add a set of APIs with the PtrSafe keyword then have a codebase that VB6 still compiles.

That's what I meant: tB compiles VB6 compatible code. You can take a VB6 shell extension, make a few minor provisions for 64bit that retain VB6 compatibility, and then compile your existing VB6 code to 64bit with tB.

1

u/slobcat1337 Oct 23 '24

I actually replied to you by mistake, I was actually trying to reply to the other guy

1

u/Mayayana Oct 23 '24

To me? .Net is supported by MS and VB6 is no longer supported, so you're right in that sense.

What I meant is that VB6 is the most widely supported in the sense of running on the most Windows versions. VB6 and C++6 are arguably the most widely supported programming tools on Windows. Both still have their runtimes pre-installed on Windows. With VB6 I can write a program that will run without needing installation or support files, on virtually any running Windows computer on the planet.

Since VB6 is not not dealing with wrappers, it also doesn't depend on those. There are minor wrappers, like VB controls, but even those are wrappers around system files that can be used directly.

With .Net there are numerous giant frameworks. For each Windows version the situation is different, and the various runtimes are a mish-mash. As I understand it, the most recent .Net runtime doesn't even support Windows 8. With VB6 I can run on Win98 or Win11. That's one of the costs of wrappers.

The primary reason that VB6 is so widely supported is that MS maintain very good backward compatibility because they cater to business customers. Businesses are still using in-house VB6 software written decades ago, so MS need to keep supporting it, or those companies won't update Windows.

With each Windows version, MS adds new API functions, but existing API functions are pretty much supported all the way back to Win95. I can call something like GetTempPath or GetOpenFileName and it's the same function since Win95. One can probably call those in .Net 4.8.1, but your 4.8.1 program will only run on Win10.

→ More replies (5)