FAQ on Instant C++ - VB to C++ Conversion Utility





























FAQ for Instant C++ (VB Edition):

VB to C++/CLI Converter

Q:    Which version of VC++ is targeted?
A:    C++/CLI (2005 and above) code is produced.
Q:    Are entire projects converted?
A:    You can select VB projects or folders to convert.  All ".vb" files within that project or folder will be converted and written as either combined declaration/implementation header files or as traditionally separated .h/.cpp files to the directory you specify.  However, Instant C++ does not construct the new VC++ project file.  This is due to the lack of one-to-one correspondence between VB project types and formats and VC++ project types and formats.
 
Q:    Is the original VB code altered in any way?
A:    Your existing code is left completely intact.  The new C++ files are written to the new location that you specify.
Q:    Do you guarantee a 100% complete conversion?
A:    No.  Our converter accuracy is the highest in the industry, but there will be some minor tweaks required in all but the most trivial conversions.  Read the rest of the FAQ to get an idea of a few things that are not converted.  It is critical to try some of your own code when comparing VB to C++ converters since it is very easy to create a converter that does very well on a specific sample set.  The most important criterion is how well the converter does on your own code, and this is where Instant C++ (VB Edition) will clearly show its superiority.
 
Q:    What are the most common manual adjustments?
A:
●  Types must be declared before they are used in C++.  Instant C++ does not move type declarations around to satisfy this C++ requirement.  In VB there is no such requirement since the VB compiler makes more than one pass through the source code.
 
●  Same class constructor calls are not supported in C++.  These cases are marked with "ToDo" comments.
 
●  You cannot initialize non-static class fields in their declarations in C++, so these are marked with "ToDo" comments.  The recommended solution is to move the initializations to a constructor or common method called by all the existing constructors.
 
●  There will be occasional qualifier symbol adjustments required.  For example, it is possible that Instant C++ fails to determine whether a particular VB dot operator should be replaced by a C++ arrow, double colon, or dot.  If type analysis fails to determine the equivalent, heuristics are used to determine the most probable equivalent.
 
●  Since Instant C++ does not map to a particular C++ project type, the VB 'Main' method is left in it's original location and converted literally.  Depending on the C++ project type, you will need to adjust the location and structure of the main method.
 
●  If the VB.NET project did not have 'Option Strict On' set, then you'll likely have a number of cases where different types are compared with each other - these may need adjustment.
 
●  Although most On Error GoTo statements are converted, some elements of classic VB unstructured error handling (On Error Resume Next, On Error GoTo -1, etc.) are not converted.  These statements are marked as a 'ToDo' task. Also, all references to the VB Err object are not converted and marked as a 'ToDo' task.
 
●  ‘When’ statements in ‘Catch’ blocks (which have no equivalent in C++) must be manually adjusted.  These are commented out and combined with a warning comment.
 
 
Email your questions and comments to:  info@tangiblesoftwaresolutions.com

[Site Map]        [Home]


Copyright © 1997 - 2008 Tangible Software Solutions Inc.