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. 2020
    6. CodePorting.Native Cs2Cpp 20.9

    CodePorting.Native Cs2Cpp 20.9

    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. ‘explicit_destructors’ option was supported by porter making it possible to generate destructors for all classes (e. g. for debugging via breakpoints placement).
    2. Wrapper classes were added making it possible using STL streams with ported API by wrapping STL streams into System::IO::Stream-like classes, as well as by wrapping System::IO::Stream with STL-like stream adapter classes.
    3. ‘prefer_short_type_names’ option was supported by porter making it possible using short (not fully qualified) names where possible for some contexts.
    4. A subsystem was added to the porter to decide between CppConstMethod and CppConstWrapper attributes if both are inherited or applied to a single entity by any other means. The choice is based on which attribute is applied more specifically.

    Minor fixes

    1. Some minor behavior issues were fixed for System::Security::Cryptography namespace, Convert, and Environment classes.
    2. Template type names are now suffixed with ‘’ string in output gv files.
    3. The memory leak was fixed in the Skia gif submodule.
    4. A bug was fixed in porter when creating exceptions and passing null as the only string argument.
    5. The memory management issue was fixed in EnumValues class.
    6. Porter no longer generates unnecessary boxing code for calls to Console::Write/WriteLine and String::Format.
    7. Globalization data was updated for better compatibility with Windows 10 2004.
    8. gtest fork used was upgraded so that char16_t data is now properly formatted when dumped to console.
    9. Porter reports on documentation comment replacement were improved.
    10. Range-based for loop was fixed for the SortedDictionary container.
    11. Vertically aligned text rendering was fixed for some cases.
    12. The generation of forwarding declarations for delegates was fixed in porter.
    13. Rendering of some italic fonts on Linux was fixed.
    14. Linking ported projects with GCC in case of using enum metadata was fixed.
    15. Some missing includes for int32_t were fixed.
    16. Call to System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName now provides fully qualified typename instead of short name.
    17. ICUEncoder class now properly works with SMP characters.
    18. System::StaticCast and System::DynamicCast functions were optimized for speed.
    19. The ‘Ignore’ parameter of the TestCase attribute is now recognized by the porter.
    20. A bug was fixed in porter causing truncated include paths in include_map.
    21. XmlTextReader::ReadString() now properly handles whitespaces.
    22. Conversion from utf-8 to System::String was switched to explicit as the operation may take a long time.
    23. Some memory leaks were fixed in the Xml submodule.
    24. A bug was fixed in porter not getting Object-typed fields into GetSharedMembers() data.
    25. A bug was fixed in porter for per-class export mode.
    26. The porter now generates RTTI macros for TestFixture classes. The old behavior can be restored using a newly introduced ‘rtti_on_testfixture’ option.
    27. The behavior of IPAddress::TryParse() and XmlWriter::Create() methods was fixed.

    Please consult the respective sections of our wiki for more information.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    CSPORTCPP-3548Porting tests for the System.Security.Cryptography namespace.Task
    SLIDESCPP-2501Fix memory leak of GifMakeMapObjectBug
    CSPORTCPP-3569Analyzing and porting the following source files from the SystemLibraryTest project to MonoTestsEnhancement
    CSPORTCPP-3467Instances of exception classes are created incorrectly when null is passed as the message parameter valueBug
    WORDSCPP-999Simplify ported code with System::Console::WriteLine callsEnhancement
    CSPORTCPP-2953Add option to generate destructors unconditionallyTask
    CSPORTCPP-1534Create System::Stream-like wrappers around iostreamsTask
    SLIDESCPP-2515Fix curvature direction for SketchLineTestsBug
    WORDSCPP-963SystemPal::OpenStreamFromHref doesn’t support URI with the file with escaped charactersBug
    CSPORTCPP-1809Add char16_t serialization to gtestEnhancement
    SLIDESCPP-2528Porter: Improve CommentReplacementHelper’s reportsEnhancement
    SLIDESCPP-2518Enable foreach_as_range_based_for_loop porter option for Aspose.Slides for C++Task
    SLIDESCPP-2406Fix RegressionTests_v15_3.SLIDESNET_36181 testTask
    WORDSCPP-1003Use short type names for DynamicCast and enumsEnhancement
    PDFCPP-1304Asposecpplib thread fixesBug
    CSPORTCPP-3623Incorrect forward declaration generationBug
    SLIDESCPP-2535Fix font with italic style in LinuxBug
    EMAILCPP-242Preparing Aspose.Email for C++ Release 20.7Task
    EMAILCPP-243Preparing Aspose.Email for C++ Release 20.8Task
    WORDSCPP-962Incorrect output from XmlTextWriter for SMP characters / TestSmpCodePointsEscapedBug
    TASKSCPP-1464Fix StaticCast/DynamicCast to avoid the extra call of dymanic_castEnhancement
    WORDSCPP-915Add support for TestCase@Ignore named parameterNew feature
    PDFCPP-1367porter bug in generating include_mapsBug
    WORDSCPP-823Some Odt tests never endBug
    CSPORTCPP-3621Verify that implicit conversion from utf8 to System::StringImprovement
    SLIDESCPP-2507Fix memory leak of xmlNewDocBug
    SLIDESCPP-2540Fix memory leak of xmlNewNsBug
    SLIDESCPP-2541Fix memory leak in XmlTextReader::ReadBug
    SLIDESCPP-2543Fix memory leak of HyperlinkBug
    PDFCPP-1385Fix Cs2CppPorter - reflection & shared libraryBug
    CSPORTCPP-3557Issues with ‘override’ subsystemBug
    PDFCPP-1399RTTI for test fixturesEnhancement

    Public API and Backward Incompatible Changes

    1. System::Random is no longer ported as a value type.
    2. FileWebRequest and FileWebResponse classes were supported in System::Net module.
    3. Thread::Interrupt() method was supported.