Extremely responsive, personalized customer support
Easy to use
Produces helpful notes, warnings, and 'to do' comments
Excellent learning tool for those new to C++
The Most Comprehensive VB.NET to C++ Converter
Converts all versions of VB.NET code
Numerous conversion and formatting options
Options are available for modern C++ output (C++11, C++14, C++17)
Evaluates all referenced assemblies and .NET projects in order to resolve external references more completely
Converts methods with optional parameters from VB.NET to C++
Converts VB.NET Case statements with range conditions
Superb conversions from VB.NET to C++ for all types of arrays in any of the numerous VB.NET styles
Excellent conversions of delegates from VB.NET to C++
Accurate conversions of operator overloading from VB.NET to C++
Handles the numerous coding alternatives and ambiguities of VB.NET code
Flawless conversion from VB.NET to C++ for all aspects of inheritance and interfaces
Converts all of VB.NET's quirks: modules, named parameters, function names used as temporary variables, and type character suffixes
Accurate even with poorly formatted VB.NET code
Q: Are entire projects converted?
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, VB to C++ Converter does not construct the new
C++ project file (e.g., the .vcxproj file in Visual Studio). This is due to the
lack of one-to-one correspondence between VB project types and
formats and C++ project types and formats.
Q: Are VB.NET delegates converted?
Yes - try out our Free Edition to see the conversion
details. VB to C++ Converter converts VB delegates to function pointers
Q: Is the original VB.NET code altered in any way?
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?
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 our converters
will clearly show its superiority.
Q: Are VB6 projects converted to C++?
No. The most effective and safest way to get from VB6 to
C++ is to use an upgrade tool (3rd party or the VS 2008 Upgrade Wizard) on your
VB6 code, and then use VB to C++ Converter on the resulting VB code.
Q: What are the most common manual adjustments?
VB to C++ Converter converts
only some of the .NET Framework references to native C++ equivalents. You will
need to adjust most of these references yourself. The converter offers
options to use your own custom replacements.
VB to C++ Converter
cannot ensure proper deallocation of pointer variables. In some
cases, a call to the delete operator is made, but in general
correct memory deallocation is not included in the conversion. However,
the converter contains options for converting to smart pointers.
VB to C++ Converter comments
out attributes and events since there is no direct native C++ equivalent
to .NET attributes and events.
There will be occasional qualifier symbol
adjustments required. For example, it is possible that
the converter 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.
VB to C++ Converter cannot
convert 'finally' clauses since there is no acceptable native C++ equivalent.
Since the converter 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 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.
Universal Windows Platform apps (formerly 'Metro',
'WinRT', or 'Windows Store' apps) are converted, but the converter cannot
discover type information which is inside .winmd files. There are a couple of
possible work-arounds, but they will not work consistently for
all users. This means that there will be more manual adjustments required
for Universal app conversions, until Microsoft provides a coherent approach
to reading .winmd files from desktop applications, such as our converters.