CodePorting.Translator Cs2Cpp

CodePorting.Translator Cs2Cpp

Translate C# Projects to C++

Convert any enterprise-level C# library or application to its native C++ equivalent with as little manual work as possible.

  Download Free Trial

CodePorting.Translator Cs2Cpp is a comprehensive transpiler application that can translate C# projects to native C++. It can be use to set up automated translation of continuously improving C# code to C++ in order to release the same version of the software for both languages without changing the APIs or code documentation.  It can also help in delivering C# applications and libraries to platforms where .NET support is either absent or is problematic.

CodePorting.Translator Cs2Cpp is a source code to source code transpiler app, allowing the reproduction of internal classes and routines in the same way as they are implemented in the original C# code. Moreover, after translation the C# project to C++, you can build it for any of the supported target platforms.

External Dependencies

Substitute the manually written code as a replacement for the dependency which is not available for translation.

API Preservation

The language-specific constructs used in the C# code are translated into the best-matched C++ equivalents.

Memory Control

Control weak or shared pointers in the translated code to destroy unused objects and to break loop references.


Get Complete Translation Control

The task of translating C# code to C++ is complex as there could be many ways to translate language specific constructs. In order to provide full control over the translation process, C# to C++ Translator offers configurations and attributes. Configuration files follow the rich XML syntax to define the project-wide rules whereas the attributes follow usual C# attribute notion, and can be placed in C# code to mark the constructs that must be translated in a special way.

Don't Worry About the Unmanaged Code Anymore

In C#, allocated objects are collected by Garbage Collector when there is no further need for them whereas C++ code is unmanaged. In order to perform garbage collection in the translated code, all objects are wrapped into smart pointers (intrusive) which count the number of active references and deallocate memory once the object has no active references left. 

More Accurate Type System Reproduction

CodePorting.Translator Cs2Cpp reproduces original C# type system in the converted C++ code, that is; Cs2Cpp translator uses its own analogs of original .NET types rather than closest STL substitutes. This allows using the types in the same way as used in the original code by calling specific methods absent in the STL substitutes.

No Need to Rewrite the Unit Tests

CodePorting.Translator Cs2Cpp converts unit tests written with the help of NUnit & XUnit frameworks to C++ language, allowing to execute the same tests on the translated code. Simply put, if the original code is covered with the unit tests, the translated code is also covered. Translation TestCaseData & saving document in docx format is also fully supported.


Support & Learning Resources