Documentation

    Table of Content
    • CodePorting.Translator Product Family
      • CodePorting.Translator Cs2Cpp
        • Getting Started
          • Product Overview
          • Installation
          • Licensing
          • How to use CodePorting.Translator Cs2Cpp
            • How to Use Command line to translate and build Projects
            • How to Use GUI to translate and build Projects
        • Developer Guide
          • Translating Simple C# Projects
            • Translating Simple Console Application
            • Translating Simple Library
            • Translating Simple NUnit Test
          • Translating Dependent C# Projects
            • Translating Dependent Console Application
            • Translating Dependent Library
            • Translating Dependent NUnit Test
          • Qt support
          • Translating Complex C# Projects
            • How to Convert Complex C# Console Application to C++
            • How to Convert Complex C# Library to C++
            • How to Convert Complex C# NUnit Test to C++
          • What Converts to What
            • AbstractClasses
            • BreakStatements
            • ClassAutoProperties
            • ClassConstructors
            • ClassEvents
            • ClassFinalizers
            • ClassGenericMethods
            • ClassIndexers
            • ClassMethods
            • ClassProperties
            • ClassStaticConstructor
            • ClassStaticMethods
            • ClassStaticProperties
            • ClassVirtualMethods
            • ContinueStatements
            • Delegates
            • DoWhileStatements
            • Enums
            • EnumTypeCast
            • Exceptions
            • ExpectedException
            • ForeachStatements
            • ForeachStatementsStd
            • ForStatements
            • GenericClasses
            • GenericDelegates
            • GenericInterfaces
            • GenericStructs
            • IfStatements
            • LambdaExpressions
            • NestedClasses
            • ReturnStatements
            • SimpleClass
            • SimpleInterface
            • SimpleStruct
            • SimpleTest
            • StandardTypeCast
            • StaticClass
            • SwitchStatements
            • TestWithSetupMethods
            • ThrowStatements
            • TryCatchFinallyStatements
            • TryCatchStatements
            • TryFinallyStatements
            • VarExpressions
            • WhileStatements
          • CodePorting Translator Cs2Cpp Attributes
          • CodePorting Translator Cs2Cpp Configuration File
            • CodePorting.Translator Cs2Cpp Configuration File Structure
            • Attributes in Configuration file
            • Configuration file Nodes
            • Configuration file Options
          • Memory Management Model
            • Memory Management Model Description
            • Using aliasing constructor to create a smart pointer
          • Cmake Support
          • C++ code injection
          • C++ user-defined exception classes
          • Limitations and Bugs
            • Translator Limitations and Bugs
            • Library Limitations and Bugs
            • Cpp Code Injection
        • Release Notes
          • 2022
            • CodePorting.Translator Cs2Cpp 22.6
            • CodePorting.Native Cs2Cpp 22.5
            • CodePorting.Native Cs2Cpp 22.4
            • CodePorting.Native Cs2Cpp 22.3
            • CodePorting.Native Cs2Cpp 22.2
            • CodePorting.Native Cs2Cpp 22.1
          • 2021
            • CodePorting.Native Cs2Cpp 21.12
            • CodePorting.Native Cs2Cpp 21.11
            • CodePorting.Native Cs2Cpp 21.10.1
            • CodePorting.Native Cs2Cpp 21.10
            • CodePorting.Native Cs2Cpp 21.9
            • CodePorting.Native Cs2Cpp 21.8
            • CodePorting.Native Cs2Cpp 21.7
            • CodePorting.Native Cs2Cpp 21.6
            • CodePorting.Native Cs2Cpp 21.5
            • CodePorting.Native Cs2Cpp 21.4
            • CodePorting.Native Cs2Cpp 21.3
            • CodePorting.Native Cs2Cpp 21.2
            • CodePorting.Native Cs2Cpp 21.1
          • 2020
            • CodePorting.Native Cs2Cpp 20.12
            • CodePorting.Native Cs2Cpp 20.11
            • CodePorting.Native Cs2Cpp 20.10
            • CodePorting.Native Cs2Cpp 20.9
            • CodePorting.Native Cs2Cpp 20.8
            • CodePorting.Native Cs2Cpp 20.7
            • CodePorting.Native Cs2Cpp 20.6
            • CodePorting.Native Cs2Cpp 20.5
            • CodePorting.Native Cs2Cpp 20.4
            • CodePorting.Native Cs2Cpp 20.3
            • CodePorting.Native Cs2Cpp 20.2
            • CodePorting.Native Cs2Cpp 20.1
          • 2019
            • CodePorting.Native Cs2Cpp 19.1
            • CodePorting.Native Cs2Cpp 19.2
            • CodePorting.Native Cs2Cpp 19.3
            • CodePorting.Native Cs2Cpp 19.4
            • CodePorting.Native Cs2Cpp 19.4.1
            • CodePorting.Native Cs2Cpp 19.5
            • CodePorting.Native Cs2Cpp 19.6
            • CodePorting.Native Cs2Cpp 19.7
            • CodePorting.Native Cs2Cpp 19.8
            • CodePorting.Native Cs2Cpp 19.9
            • CodePorting.Native Cs2Cpp 19.10
            • CodePorting.Native Cs2Cpp 19.11
            • CodePorting.Native Cs2Cpp 19.12
          • 2018
            • CodePorting.Native Cs2Cpp 18.9
            • CodePorting.Native Cs2Cpp 18.9.1
            • CodePorting.Native Cs2Cpp 18.10
            • CodePorting.Native Cs2Cpp 18.11
            • CodePorting.Native Cs2Cpp 18.12
    1. Home
    2. CodePorting.Translator Product Family
    3. CodePorting.Translator Cs2Cpp
    4. Release Notes
    5. 2021
    6. CodePorting.Native Cs2Cpp 21.3

    CodePorting.Native Cs2Cpp 21.3

    What's on this Page

      • Major Features
      • Minor fixes
      • Full List of Issues Covering all Changes in this Release
      • Public API and Backward Incompatible Changes

    Major Features

    1. Code documentation was improved significantly. Some previously undocumented members now have descriptions.
    2. Translation of type references in code comments was improved. Using ‘translate_code_from_comments_system_dlls’ configuration item is no longer required as the porter automatically looks through the types in all referenced assemblies. Class properties are now properly replaced when translating documentation comments.
    3. Assert.That(Is.AtLeast) and Assert.That(Is.GreaterThanOrEqualTo) assertions were supported by porter when translating NUnit/xUnit tests.
    4. SDK-styled csproj files were supported using Buildalyzer library. To use it, one must set the new ‘use_buildalyzer’ option.

    Minor fixes

    1. Memory consumption when creating delegates was improved.
    2. The ‘CppDeclareFriendFunction’ attribute is now supported by porter. It allows it generating friend declarations for the external functions.
    3. Porter performance issue generating includes for ported files was fixed.
    4. GetSharedMembers() virtual function trunk was excluded from both the library and the ported code.
    5. The FINAL and OVERRIDE macros were retired.
    6. An issue was fixed in porter when translating multiple TestCase-driven tests with same names belonging to different classes.
    7. The rendering of synthesized font styles was improved to better match .Net behavior. Some issues rendering and measuring text were resolved.
    8. HttpWebRequest class now properly handles relative pathes in redirect header.
    9. The signature and contents of SetTemplateWeakPtr method was put in line with the rest of the code in both the library and the generated code.
    10. Some issues translating the code which depends on Zip subsection of the Library were resolved.
    11. The size of System::Object class instance was optimized.
    12. The behavior of System::Threading::Thread::get_ManagedThreadId() was improved to guarantee unical identifiers for the threads.
    13. Translation of foreach-based iteration on ‘this’ no longer causes compilation errors in const methods if ‘IterateOver’-like approach is used.
    14. The default constructors of ShaXXXManaged classes no longer throw NotImplemented exceptions.
    15. The new ‘always_include_delegates’ option is supported by porter to include delegates definitions instead of redeclaring them each time.
    16. System::IO::Compression::BrotliStream class was supported using Brotli library.
    17. Missing include for System::ComponentModel::AsyncCompletedEventArgs in ported code was fixed.

    Please consult respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    CSPORTCPP-2705Fix missing commentsBug
    CSPORTCPP-4084High memory usage when creating delegatesEnhancement
    WORDSCPP-1058Implement public Venture License APITask
    CSPORTCPP-4074Some CppForceInclude attributes get ignoredBug
    SLIDESCPP-2740Improve system types handling when porting commentsEnhancement
    CSPORTCPP-4088Adding the new directive that is used to disable GetSharedMembers.Task
    CSPORTCPP-1922Remove some private headers from include directory and perform limited clean-up of public headersTask
    WORDSCPP-1060Support of Assert.That(…, Is.AtLeast(…)) expressionsTask
    CSPORTCPP-3104Fix net namespace commentsTask
    WORDSCPP-1061Fix porting of parameterized tests with the same nameBug
    SLIDESCPP-2803Check Skia with SK_USE_FREETYPE_EMBOLDEN define enabledTask
    CSPORTCPP-4036Update SetTemplateWeakPtr method generationEnhancement
    SLIDESCPP-2808Translate class members when porting commentsTask
    SLIDESCPP-2689Use Aspose.Slides for .NET 21.3 featuresEnhancement
    SLIDESCPP-2789Fix text width in GraphicsTest.MeasureDrawString_06Task
    SLIDESCPP-2790Fix text width in DrawStringTests.Test_10_* testTask
    CSPORTCPP-4092Remove redundant field m_globalMutex from System::ObjectTask
    EMAILCPP-253Improving performance of the ported code (investigating bottlenecks)Task
    EMAILCPP-282Fixing regressions in porter caused by ‘Fewer includes’ MRTask
    PDFCPP-1540Fix Threading::GetCurrentThread, Thread::ManagedThreadIdTask
    PDFCPP-1538Fix enumerator_adapter to iterate over const pointersTask
    TASKSCPP-1567Enable managed SHA classes instantiationTask
    CSPORTCPP-4137Add ‘always include delegates’ optionTask
    CSPORTCPP-4118Merge SDK-styled projects supportTask
    EMAILCPP-296Prepearing Aspose.Email for C++ Release 21.2Task

    Public API and Backward Incompatible Changes

    1. .Net Framework used by porter was upgraded to 4.7.2 (was 4.6).