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.3

    CodePorting.Native Cs2Cpp 20.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. CodePorting.Native.Cs2Cpp.PortingControl Nuget package was released containing definitions of attributes recognized by the porter.
    2. CppNonConstMethod, CppConstWrapper, and CppOverride attributes were supported by the porter.
    3. VS2019 support was improved and added to the GUI application.
    4. Increment and decrement operators are now properly ported for enums.
    5. MulticastDelegate constructor was improved to avoid ambiguity in ported code for e. g. “string vs delegate” overloads.

    Minor fixes

    1. The bug was fixed within SharedPtr class-leading to issues assigning weak pointers to shared ones.
    2. XMLNS generation in XmlTextWriter class was made closer to .Net Framework behavior.
    3. operator + was fixed for ‘String + null object’ case.
    4. Native’s visualizers were improved significantly.
    5. db_data_reader.h compilation issues were fixed.
    6. GraphicsPath::AddArc() was fixed for some cases.
    7. Graphics::DrawString() was improved to use alignment properties.
    8. XmlTextReader was fixed to use XmlNamespaceManager property.
    9. Some memory management bugs were fixed for XmlTextReader class.
    10. EnumValues::GetValueOf() was fixed for the case of integer values.
    11. Issue disconnecting MulticastDelegate was fixed.
    12. Some pointer implementations were removed from public headers.
    13. Signatures of some Array methods were improved by adding ‘const’ qualifiers to their arguments.
    14. Exception-to-object and object-to-exception casts were fixed in ported code.
    15. Compilation errors invoking ValueType’s methods from ported structs were fixed.
    16. Assignment to variables of ‘System::Type’ type was fixed in ported code.
    17. The Const getter deduction algorithm was improved in porter.
    18. Missing includes when translating delegates were fixed.
    19. Culture/locale fallback mechanism was added.
    20. IEnumerator now inherits IDisposable, same as in .Net.
    21. Enum::GetUnderlyingType() was supported.
    22. System::Collections::List::ToArray() method was fixed.
    23. A crash was fixed when unloading Aspose C++ products dynamically.
    24. X509 certificates support was improved. Exception handling was put in line with .Net behavior. Private keys support was extended.

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

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    CSPORTCPP-3170Support CodePorting.Native Cs2CppTask
    CSPORTCPP-3132Add Attributes build into a release packageTask
    EMAILCPP-202Transition to the common version of asposecpplib (CodePorting.Native Cs2Cpp)Task
    WORDSCPP-930Improve default xmlns handlingTask
    PDFCPP-1192fix NullReference in AspsosecpplibBug
    TASKSCPP-1377Fix invalid shared API reference in db_data_reader.h (asposecpplib)Bug
    WORDSCPP-855TestIndexAndTables.TestToc - docx is differentBug
    SLIDESCPP-2240Fix GraphicsPath::AddArc calculationsBug
    SLIDESCPP-2247Fix the wrong position of text and legends in charts (20.2)Enhancement
    WORDSCPP-933XmlTextReader doesn’t use XmlParserContext.NamespaceManager propertyBug
    PDFCPP-1198Fix EnumValuesBase::ParseEnhancement
    CSPORTCPP-3133Hide cryptographic provider’s implementationsTask
    CSPORTCPP-3188The ported assignment of the exception object to object fails with a compilation error.Bug
    SLIDESCPP-2255Porter: Improve translation of GetHashCode() method invocation for value typesBug
    WORDSCPP-937Use the “proxy” approach to extends lifetime of objectsTask
    EMAILCPP-193Porting Exchange protocolTask
    WORDSCPP-936Support for BCP-47 compatible culture namesTask
    PDFCPP-1212Fix Cs2Cpp porter and AsposecpplibTask
    CSPORTCPP-2907Support VS2019Task
    WORDSCPP-939Dynamically Loading Words DLL Crashes the App with Access violation ExceptionBug
    WORDSCPP-826PKCS12/PFX format supportTask

    Public API and Backward Incompatible Changes

    1. System::Security::Cryptography::ToBase64Transform class was supported.
    2. CsToCppPorter::Details::MemoryManagement::ExtendLifetime() method was added. An overload of CsToCppPorter::Details::MemoryManagement::BindLifetime() method was added.
    3. System::Threading::Monitor class was supported.
    4. WeakReference::operator ## () was supported.
    5. System::Collections::Specialized::NameValueCollection class was supported.
    6. System::Web::Services::Protocols::SoapHeaderCollection class was made publically available.
    7. System::UriBuilder::set_Port() method was added.
    8. A new overload of System::Text::RegularExpressions::Regex::Replace() method was added.