Documentation

    Table of Content
    • CodePorting.Native Product Family
      • CodePorting.Native Cs2Cpp
        • Getting Started
          • Product Overview
          • Installation
          • Licensing
          • How to use CodePorting.Native Cs2Cpp
            • How to Use Command line to port and build Projects
            • How to Use GUI to port and build Projects
        • Developer Guide
          • Porting Simple C# Projects
            • Porting Simple Console Application
            • Porting Simple Library
            • Porting Simple NUnit Test
          • Porting Dependent C# Projects
            • Porting Dependent Console Application
            • Porting Dependent Library
            • Porting Dependent NUnit Test
          • Porting 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++
          • Qt support
          • 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 Native Cs2Cpp Attributes
          • CodePorting Native Cs2Cpp Configuration File
            • CodePorting.Native 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
            • Porter Limitations and Bugs
            • Library Limitations and Bugs
            • Cpp Code Injection
        • Release Notes
          • 2022
            • 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.Native Product Family
    3. CodePorting.Native Cs2Cpp
    4. Release Notes
    5. 2020
    6. CodePorting.Native Cs2Cpp 20.5

    CodePorting.Native Cs2Cpp 20.5

    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. System::Xml namespace implementation was improved and extended. This includes implementing previously unsupported types and methods and establishing the basis for document signature support.
    2. Issues with Aspose products' embedded resources were fixed.

    Minor fixes

    1. Doxygen used to build project documentation was upgraded to 1.8.18 version. Some Doxygen warnings were fixed in header files.
    2. Natives' visualizers supplied for our proprietary types were improved.
    3. ‘Nullptr to Nullable’ cast was fixed.
    4. Translation of Assert.Throws() was fixed. False positives are no longer generated if no exception is being thrown.
    5. XslCompiledTransform::Transform(const SharedPtr& input, const SharedPtr& results) was implemented.
    6. ‘Where’ LINQ extension method was supported by the porter.
    7. GetType() was fixed for boxed enums.
    8. File::ReadAllText() now detects UTF-8 encoding automatically.
    9. A bug was fixed in porter placing output files above the project root if corresponding input files are placed above project root.
    10. ‘ASPOSE_CONST’ legacy qualifier was removed by replacing it with a normal ‘const’ qualifier. Porter is no longer capable of generating it.
    11. CppConstWrapper attribute no longer requires CppNoConstMethod one to be placed to the same method, as the same behavior is now supported implicitly.
    12. Failures when loading inconsistent XML via XmlDocument::Load was fixed.
    13. Empty comments skipping was fixed in porter.
    14. The emplaced resource is no longer visible to other builds when the emplace_assembly_details option is enabled.
    15. String::Substring() method now performs correct boundary checks the same way .Net does.
    16. Assert.AreEqual() translation was extended to match the NUnit behavior when comparing streams (streams' contents get compared instead of pointers).
    17. 64-bit long file sizes are now extracted properly.
    18. Invariant cutlure is now supported by String::LastIndexOf().
    19. DateTime::Parse() now throws same exceptions .Net does.
    20. Relative paths are now generated for embedded resources instead of absolute ones.
    21. Reflection support was improved.
    22. GCC compilation issues with has_operator_equal template were fixed.

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

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    PDFCPP-1248Change for_each_member to generate weak linksTask
    EMAILCPP-218Fix nullptr cast to NullableBug
    SLIDESCPP-2349Porter: Improve Assert.Throws() method translationImprovement
    PDFCPP-1264Fix XslCompiledTransform to support XmlReader.Task
    PDFCPP-1269implement Linq WhereTask
    PDFCPP-1271fix Asposecpplib - GetType() for boxed enums works incorrectlyBug
    PDFCPP-1272Fix Asposecpplib - IO.File.ReadAllText() does not detect utf8 encoding automaticallyBug
    PDFCPP-1273Fix CsToCppPorter - *.cs files started with “..” are being written to incorrect folderImprovement
    EMAILCPP-220Prepearing Aspose.Email for C++ Release 20.4Task
    TASKSCPP-1392Implement dependent classes for reading XML content as DateTimeTask
    TASKSCPP-1355Implement missing methods in XmlReader/XmlTextReader required for PWA porting.Task
    SLIDESCPP-2265Implement XmlReaderSettings' MaxCharactersFromEntities and MaxCharactersInDocument propertiesTask
    SLIDESCPP-2129Add support for document digital signingTask
    SLIDESCPP-2340Fix FodpIO.TestCorruptedFodp testBug
    SLIDESCPP-2345Prepare C++ code examples (v20.4)Task
    SLIDESCPP-2355Fix visibility of embedded resources when emplace_assembly_details option is enabledBug
    PDFCPP-1283Fix support embedded resources in CsToCppPorterImprovement

    Public API and Backward Incompatible Changes

    1. ZipEntry::GetCompressedStream() method was supported.
    2. Signature of MemoryStream::ToArray() method was fixed.
    3. The CppConstMethod attribute no longer supports boolean arguments.
    4. Some previously unimplemented methods and types are now supported in System::Xml namespace.
    5. Reflection-related class support was improved.