When will VB6 application support end? - windows

Microsoft no longer supports VB6 development and support from Microsoft has already stopped. But VB6 applications still run on Windows 8.1. See also this article titled "Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008, Windows 7, Windows 8 and Windows 8.1".
When would a VB6 application stop running on Windows? Is there any official statement from Microsoft or any clue about the same?
EDIT:
In this link, the Visual Studio team has mentioned that, "It will be supported at least through 2024". But it's not clear whether they said it's supported in Windows 8 till 2024 or in future release of windows OS too.

The "2024" means as part of Windows 8. The link says the VB6 runtime is part of Windows and therefore will be supported in the same way as the rest of Windows. For example Windows 8 will be supported until 2024 because that's the support lifecycle for Windows 8.
EDIT: Microsoft have now said the VB6 runtime is officially part of Windows 10 too.
EDIT: the VB6 IDE (not runtime) is no longer officially supported on any version of Windows, but there are ways to get it to work on Windows 7 and 8.

Uservoice: The VB6 runtime it is still a component of the Windows operating
system and is a component shipped in Windows 8.1. It will be supported
at least through 2024
It seems clear they mean VB6 will be supported through 2024, not just VB6 on Windows 8 (whose mainstream support ends 6 years earlier anyway).

The VB6 programming language installs and runs on Windows 7, 8.x and 10.
There is a utility to install it here: VB6 IDE install utility

It is in Microsoft's interests for VB6 applications to run in Windows 10 and so they probably will. The same is probably true of most old application frameworks: Microsoft works hard to maintain compatibility. The IDE runs on Windows 7 (not sure about 8 or 10).
However, just because Microsoft says VB6 will run it doesn't mean your particular application will work, particularly if you use third party components. You should at least be thinking about migrating to another development environment.

From what I heard, VB6 applications still work on Windows 10 technical preview. I've seen no official statement yet, but it would seem that VB6 will stay supported for at least a few years.

Microsoft have just stated for VB6 programming on Windows 10:-
"Windows is committed to compatibility. The Windows compatibility team
has been looking at user telemetry and reacting to feedback from
Windows Insiders to ensure that existing apps work well with Windows
10. Windows 10 is designed to run Windows 8.1 and Windows Phone 8.1 software programs. And yes, everyone’s favorite VB6 Runtime will
continue to work, too. In the near future, the compat team will go
more in-depth on this topic on Blogging Windows."
Everyone's favorite VB6 programming on Windows 10
So VB6 programming will work on Windows 10, as does VBA programming.
They also state that 'Project Centennial' Universal Windows Platform Bridge will work with VB6 code.
Instructions for installing the VB6 IDE are available here...

In my personal experience if you build a dll in VB6 and add it as a component to COM Plus in Server 2016 it just won't add. You will get an error such as the following, even for a 'Hello World' component.
A registry value was changed while installing the following component
into a COM+ Application. If you are experiencing activation problems
with this component then please check the registry value for the
following key.
Component: C:\temp\Project1.dll
Registry Key:
CLSID\{D5DE8D20-5BB8-11D1-A1E3-00A0C90F2731}\InProcServer32
Process Name: RunDll32.exe Comsvcs.dll file version: not loaded

There is a project to provide a new language "RADBasic" which is intended to be compatible with the VB6 programming language.
New language compatible with VB6 programming

Looks like Microsoft just extended VB6 runtime support out to Windows 11 and Server 2022. No such luck for the IDE though.
Read more from Microsoft here:
https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy

Related

Does Windows 8 Desktop support c++/cli?

I found some information regarding Windows 8 Metro and c++/cli. Windows 8 Metro does not support c++/cli.
However I am having trouble finding explicit documentation that states whether Windows 8 Desktop supports c++/cli (the linked question is not explicit enough IMO). Does Windows 8 Desktop support c++/cli?
Please make sure to provide a link to your relevant source.
Windows 8 does not support C++/CLI.
It is the other way around, the support does not come from the Windows team (they did not ship a compiler) but from the Visual Studio team. Each Visual Studio version has a list of supported platforms that your application can target if you use that version of Visual Studio to build your app.
So does Microsoft support writing C++/CLI apps for Windows 8 Desktop? The answer is yes if you use the right version of Visual Studio*. Does the support come from Windows? The answer is no.
*You can continue test and provide support to your customers even without Microsoft's support to you, for example you can write C++/CLI code in Notepad then compile it using the cl.exe from VS2012 Express for Windows 8. There's really nothing to prevent this use case to work, despite Microsoft's statement that VS2012 Express for Windows 8 does not support desktop development (and I don't think there's any reason why Microsoft should provide support on this use case with VS2012 Express for Windows Desktop out there) .
The Windows 8 Desktop supports everything that Windows 7 supported. C++/cli included. There really isn't much that talks about this, but here is a link to VS 2012 support for C++/cli which implies the same thing.

ADO Windows With SP1 and VB6

I've been reading about the GUIDs changing for ADO/MDAC in Windows 7 service pack1 for VB6 apps. I need to recopile my compontents and replace the deprecated ones with the new one. My question is if my VB6 app is only going to be installed on windows 7 with service pack 1 or windows 2008 with the latest service pack will my VB6 app still work or do I still need to install something else too?
The updates you need to fix this problem are here.
This blog post explains a bit more about what happened and how they DRASTICALLY (Microsoft's emphasis) underestimated the number of developers that would be re-compiling ADO applications on Win7 SP1.

Which Windows versions have preinstalled MSINET.OCX control

I have an old VB6 application that depends on MSINET.OCX. I'd like to know if I can distribute this application without registering MSINET OCX component. My target OSes are XP, Vista and Windows 7. Do all of them have this component preinstalled?
See if this information from technet helps you. The short of it seems to be that it does not come preinstalled, it is installed when you install an application that uses it. You will need to include it in your installation.
It's not shipping with the OS. It is however delivered with Visual Basic. You must include it within your application setup. For details on Vista and Win7 support see: Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7

Will VS2008 compile binaries compatible with Windows 7

I'm using Microsoft Visual Studio 2008 (VC9) to compile a project that has a .dsw file. I already have the 2010 and would prefer to use it, but it seems this dsw was built for 2008.
I'd like to compile and produce a binary that's also compatible with Windows 7. My questions:
if I compile with 2008, will the resulting binary be compatible with Windows 7? I'm not sure at which version of VS did Windows 7 support start.
or does this have nothing to do with the VS version, and is instead related to the Windows SDK? If that's the case, can I use VS2008 with a newer Windows SDK?
Can someone please clarify.
Microsoft has a great backwards compatibility "story", so pretty much anything you compile with any version of Visual Studio/Visual C++ will be compatible with Windows 7. The same may not neccessarily apply in reverse, i.e. if you use an API that's introduced in Windows 7, your application will error when you try to run it on prior versions of Windows.
There are a couple of things to consider though:
If the project was originally written to target Windows XP or earlier, it may fall foul of UAC
There are changes to directory structures (such as %systemdrive%\Documents and Settings becoming %systemdrive%\Users) that are fairly well handled by the link that Windows 7 creates in the root of `%systemdrive%, but you may fall foul of these.
VS2010 includes version 7.0 of the Windows SDK and VS2008 does not. You need Windows SDK v7.0 if you want your app to take advantage of Windows 7 features like jump lists.
Since you already have VS2010 installed, you can just change your include file / lib file paths in VS2008 to point to the Windows SDK v7.0 instead of the default one provided with VS2008. This is assuming you need that version of the SDK.
You do not need the latest Windows SDK if you do not plan to use the latest Windows 7 features like ribbons and jump lists. If you are building your app for the lowest-common-denominator OS (i.e. Windows XP), then really you should be fine using VS 2008 with default settings.
The other concern is, if your code was originally written before Windows Vista came out, it is likely that it will not work properly on Windows 7 unless it is run in Administrator mode, which is something you want to avoid. The only way to fix that is to rewrite much of your code to avoid writing to certain protected directories and avoid using certain APIs that require Administrator privileges.
Windows SDK is well backward compatible. See binary compatibility report between Windows 6.0 and Windows 7.0 on x86_64 generated by the abi-compliance-checker tool for the detailed comparison.
Reports for other Windows versions are here: https://abi-laboratory.pro/index.php?view=windows

where does msscript.ocx gets installed from

I'm using msscript.ocx in my application which is an activex scripting host for windows.
Although I want to be able to use the same for XP embedded(XPe) which's highly customizable.
1.I want to know whether on XPe, msscript.ocx can be optionally installed or not?
2.Where does it get installed from, IE?
3.Or is it a windows core component which gets installed during the XPe setup?(I know one can unregister it, but can it be an optional installation)
Answering any or all of these questions will be of great help to me.
Thanks in advance.
Sam.
Microsoft's documentation of the MSScript.ocx library is somewhat contradictory on this issue. The short answer is, starting with Windows 2000, the MSScript.ocx library became part of the Windows OS. Subsequent service packs for Windows 2000, XP, and 2003 included bug fixes (1,2,3) for this library. Since that time, the library has remained part of the 32bit portion of Windows and is still included with Windows 7/2008 R2. Even 64bit versions of Windows still include msscript.ocx with WOW64 in C:\Windows\SysWOW64.
For a little history of this library's distribution keep reading.
Msscript.ocx was originally included on the Visual Studio 6 CD as a "optional" library - optional meaning it had to be manually installed. While the library was part of Visual Studio, it was migrated to being part of the Windows OS starting with Windows 2000.
This is where the confusion comes into play. Since msscript.ocx is considered to be a component of both VS6 and Windows 2000, updates were distributed in service packs for both. Even after the last service pack for VS6 was released, additional bug fixes needed to be distributed for older OS's, so a separate download was created specifically targeting Windows 95, 98 and NT4.
This download is targeted for older OS's for the simple fact that it had become a part of the OS in "modern" versions of Windows. If you are using Windows 2000 or greater, the download is unnecessary and - in my experience - can cause compatibility problems.
I think it is not shipped with Windows XP(not a 100% sure)...
But the best choice is to ship it with your installer(even if it was shipped, it can be removed). About the installing - you can put it where you want (in the program folder in Program Files is ok), the important thing is to register it.
The best choice for making installers - Wix
EDIT: reference
The Script control ships with Visual
Basic 6.0; however, Visual Basic 6.0
setup does not install the Script
Control for you. The control is
located in the CD directory
Common\Tools\VB\Script. To install the
script control, try the following
steps:
I think this answers your question....
For those having issues getting MSSCRIPT.OCX to work do the following:
Go to References in Project settings:
Microsoft Script Control 1.0
Microsoft Scripting Runtime
Microsoft Scriptlet Library
Check all those on.
you'llneed to change your development environment to produce a 32 bit version of your appliation, which for most apps won't matter.
For this goto Project,
then select Properties,
select Compile,
Target CPU: x86
In your code, and i'm using visual studio 2019,
' by using the references above the ScriptControl
' should become available for inclusion into your source c
Dim ms As ScriptControl = New ScriptControl
ms.Language = "JavaScript"
ms.Reset()
Try
ms.ExecuteStatement(RichTextBox1.Text)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

Resources