Improves accuracy and consistency of generated code to reduce .NET build errors
Adds support for custom CodeStyle.DLL (Naming Conventions, Dictionary to Generics.Dictionary; VB.Collection to Generics.List, Formatting, etc.) Contact us for a demo.
The sample upgrade solutions have been updated and several impressive new samples have been added. All samples produce functional code in both C# and VB.NET (unless noted otherwise).
FMStocks (updated) a set of DLLs and an ASP site that implement simplified stock trading application
Illustrates ASP to ASP.NET upgrade, Shared file Consolidation, and COM Replacements
Waves (updated) a stand-alone graphics/mathematics application
Illustrates upgrading advanced forms, graphics, and mathematics logic
vb3DDefine (updated) a stand-alone graphics/mathematics application
Illustrates upgrading advanced forms graphics and mathematics logic
The sample upgrade solutions have been updated and several impressive new samples have been added. All samples produce functional code in both C# and VB.NET (unless noted otherwise).
WPFScanTool (new) an EXE and DLL that implement a file analysis application
Demonstrates VB6 forms to C#/Windows Presentation Foundation (WPF)
FMStocks (updated) a set of DLLs and an ASP site that implement simplified stock trading application
Illustrates ASP to ASP.NET upgrade, Shared file Consolidation, and COM Replacements
Waves (new) a stand-alone graphics/mathematics application
Illustrates upgrading advanced forms, graphics, and mathematics logic
vb3DDefine (new) a stand-alone graphics/mathematics application
Illustrates upgrading advanced forms graphics and mathematics logic to C#
Calculator (new) a stand-alone calculator application
Illustrates control arrays and copy/paste through the clipboard
StringEvaluator (new) a stand-alone arithmetic and function evaluator
Illustrates Win32 API replacements, complex logic, and resource management
FileExplorer (updated) an stand-alone implements a simple directory explorer application
Illustrates COM replacement and ActiveX controls to WinForms controls
ScanTool (updated) an EXE and DLL that implement a file/directory analysis application
Illustrates VB6/COM/Win32 to .NET WinForms upgrade.
gmBasic VB6/ASP/COM Processor (V20.02.00)
Improves accuracy and consistency of upgraded code
Many COM APIs make extensive use of Variants and this can degrade translation quality. In fact, I was recently working on upgrading a commercial VB6 application to C# and I encountered the following error in the C# build log:
ERRNUM: CS0029: Cannot implicitly convert type 'byte' to 'byte[]'
NETSRC: ... frmAttachWindow.cs@287
bbuf = Convert.ToByte(vbuf);
ERRNUM: CS0029: Cannot implicitly convert type 'byte[]' to 'object[]'
NETSRC: ... frmAttachWindow.cs@291
vbuf = sendbuf;
Looking at the VB6 code I find this:
Dim vbuf As Variant
Dim bbuf() As Byte
and later this
vbuf = frmMain.MSComm.Input
I suspect frmMain.MSComm.Input is a member of an MSCOMM control. I look up the definition of this member in the generated interface description file (IDF) for MSCOMM and I find this:
I save the updated IDF in my usr folder so it will take precedence over the generated one.
I take a snapshot of the last translation, and I rerun the translation using the new IDF.
Comparing the snapshot (left) to the new results (right) shows the dramatic improvements - and the orginal C# build errors are gone.
gmStudio technology allows a migration team to modify the type information for your COM APIs. This will result in cleaner more correct translations. Modifying type information can also be used to direct the tool to replace COM components with .NET classes. See Custom COM Replacement for additional information.