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. 2019
    6. CodePorting.Native Cs2Cpp 19.2

    CodePorting.Native Cs2Cpp 19.2

    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. Gregorian calendar implementation was revised. Other previously unsupported calendars were implemented.
    2. Several bugs were fixed and several features implemented for System::Drawing classes.
    3. make_library option was supported in porter.
    4. ‘includes’ attribute was supported for ‘implementation’ config file node.
    5. ‘cpp_enum_enable_metadata’ option was added making it possible enabling metadata generation for all enums being ported.
    6. ‘Abort’ menu action was fixed in Porter GUI for building step.

    Minor fixes.

    1. C2487 error was fixed when building ported code with per-class exports for classes implementing ICloneable, IComarable and IEquatable interfaces.
    2. Porter behavior was fixed when using ‘params’-typed parameter in exception class constructor.
    3. A bug was fixed when reading password-protected zip archives.
    4. DateTime constructor now throws valid ArgumentOutOfRangeException if it is passed invalid date or time components.
    5. BeginPixelProcessing() and EndPixelProcessing() methods were added into Bitmap class allowing it exposing pixels in same premultiplied format as .Net implementation.
    6. Graphics::SetClip and Graphics::FillRegion methods were implemented.
    7. Some more missing System::Drawing methods were implemented.
    8. System::Uri class was improved. Several compilation and runtime issues were fixed. Missing members were implemented, related classes and enums were updated as well.
    9. String-argumented constructor behavior was fixed for ObjectDisposedException, ArgumentNullException and ArgumentOutOfRangeException classes.
    10. Convinient constructor from char16_t subrange was added into String class.
    11. GraphicsPath::Widen method was fixed with Pen dash styles, CompoundArray and thin lines.
    12. Image cropping issues after rotating the image were fixed.
    13. HotkeyPrefix feature of StringBuilder class was supported.
    14. ‘&#’ and ‘|#’ operators were supported for nullable primitives.
    15. ‘Missing override keyword’ warnings of clang compiler were suppressed as porter currently doesn’t support auto-placing these.
    16. FocusScales feature of PathGradientBrush was supported.
    17. Color naming issues were fixed for predefined colors.
    18. IsIdentity feature of Matrix class was supported.
    19. PixelFormat detection was improved for Bitmap class.
    20. Scaling issues with Graphics::DrawImage method were fixed.
    21. LinearGradientBrush and PathGradientBrush missing methods were implemented.
    22. Several issues with Graphics and Rectangle classes were fixed.
    23. Some clipping issues with Graphics class were fixed.
    24. Transformed drawing of PathGradientBrush was fixed.
    25. Wrong image geometry was fixed for the cases when CompoundArray is used.
    26. Some service methods were added into System::Drawing classes to be used by Aspose products only.
    27. Graphics::DrawString method was fixed for the case of vertical text. Unexpected NullReferenceException thrown by this method was fixed.
    28. BitConverter::GetBytes method was implemented on Linux.
    29. Some fonts' behavior was fixed on Linux.
    30. Text shadowing was fixed.
    31. Line caps were fixed in some cases.
    32. GCC compilations issues were fixed with image.h and enum operators.
    33. Some kerning issues were fixed.
    34. XmlReader::ReadToNextSibling() method was implemented.
    35. Nested internal classes forward declaration was fixed.
    36. License file was included into Nuget package as per new Nuget.org policy.
    37. Shared exports macro was fixed for type conversion operators.
    38. Named groups support was fixed for Regex and related classes.
    39. Encoding-related classes cloning was fixed.
    40. Behaviour of StreamWriter.Writeline(chararray, index, count) method was fixed.
    41. Some unwanted binaries were dropped from release package.
    42. Compilation issue was fixed with ternary operator applied to boolean variable and item of boolean array.

    Full List of Issues Covering all Changes in this Release

    KeySummaryCategory
    PDFCPP-881Fix error C2487Bug
    WORDSCPP-710Rework globalization calendars classesTask
    PDFCPP-886CsToCppPorter - parse throw exceptions with params ctorBug
    WORDSCPP-750ZipReaderPal can’t extract zip with password / TestAsian.TestJira8745ABug
    SLIDESCPP-1480Fix RegressionTests_v18_10.SLIDESNET_40578 testTask
    SLIDESCPP-1478Investigate failed Effects.ImageTransfromOperation.BlurTests functional testsTask
    SLIDESCPP-1486Investigate failed Effects.EffectFormat.BlurGrowTests functional testsTask
    SLIDESCPP-1488Investigate failed Effects.EffectFormat.SoftEdgesTests functional testsTask
    SLIDESCPP-1499Investigate failed Effects.EffectFormat.InnerShadowTests functional testsTask
    SLIDESCPP-1485Enhance the implementation of the System::Uri classEnhancement
    SLIDESCPP-1523Pen dash styles do not affect GraphicsPath::Widen methodTask
    SLIDESCPP-1524Image is cropped after applying a transformation matrixTask
    SLIDESCPP-1525Build a single library release of Aspose.Slides for C++ by ClangTask
    SLIDESCPP-1417Pick fixes for memory leaks and Clang builds from CsPorter repoTask
    SLIDESCPP-1529Implement missing drawing methods of the Graphics classTask
    SLIDESCPP-1531Implement missing auxiliary methods of the StringFormat classTask
    SLIDESCPP-1532Implement missing auxiliary methods of the CustomLineCap classTask
    SLIDESCPP-1530Implement missing auxiliary methods of the Graphics classTask
    SLIDESCPP-1536Implement System::Drawing::Drawing2D::HatchBrush classTask
    SLIDESCPP-1537Resolve Aspose.Slides for C++ v18.11 compilation errorsTask
    SLIDESCPP-1545Disable compiler warnings for Aspose.Slides for C++ build by ClangTask
    SLIDESCPP-1544Implement the FocusScales property of the PathGradientBrush classTask
    SLIDESCPP-1540Implement Graphics::MeasureCharacterRanges methodTask
    SLIDESCPP-1549Fix Color::get_Name method result for predefined colorsTask
    SLIDESCPP-1550Fix Matrix::get_IsIdentity method behaviorTask
    SLIDESCPP-1552Fix NotImplementedException while running RegressionTests_v14_10.SLIDESNET_35528 testTask
    SLIDESCPP-1553Fix RegressionTests_v18_11.SLIDESNET_37020 testTask
    SLIDESCPP-1541Add doxygen documentation to the newly implemented methodsTask
    SLIDESCPP-1534Implement missing auxiliary methods of the PathGradientBrush classTask
    SLIDESCPP-1569Analyze failed BasicTests tests of the Aspose.Metafiles.Tests.CppTask
    SLIDESCPP-1570Analyze failed BrushTests tests of the Aspose.Metafiles.Tests.CppTask
    SLIDESCPP-1572Improve clipping algorithm implemented in the Drawing::Graphics classTask
    SLIDESCPP-1333Port Aspose.Metafiles.Tests project to C++Task
    SLIDESCPP-1574Fix straight lines drawing when CompoundArray is usedTask
    SLIDESCPP-1566Porter: Improve shared api export mechanismTask
    SLIDESCPP-1573Porter: Implement a possibility to hide local symbols in ported codeTask
    SLIDESCPP-1546Fix symbols export for Aspose.Slides for C++ build by GCCTask
    SLIDESCPP-1494Fix RegressionTests_v16_11.SLIDESNET_37864 testTask
    SLIDESCPP-1598Incorrect or missing gradient fillTask
    SLIDESCPP-1599Incorrect emf geometry renderingTask
    SLIDESCPP-1528Distance from the start of a line to the beginning of a dash pattern in C++ is different from .NETTask
    SLIDESCPP-1600Missing part of the chartTask
    SLIDESCPP-1602Move the ported code of Aspose.Slides.Drawing.Skia.Region to the Aspose C++ LibraryTask
    SLIDESCPP-1619Fix TestDeck_067_StarsBanners.CheckPptx2PdfConversion testTask
    SLIDESCPP-1609Vertical text is missing in generated SvgTask
    SLIDESCPP-1628Investigate AutoShapeChecksumImport test group issues in LinuxTask
    SLIDESCPP-1630Investigate tests which fail due to wrong or missing font in LinuxTask
    SLIDESCPP-1640Fix asposecpplib regression found in tests FontConverterTestTask
    SLIDESCPP-1641Fix the product compilation by gcc on Jenkins node 3Task
    SLIDESCPP-1627Synchronize Aspose C++ Library sources between Slides and CsPorter repositories (v19.1)Task
    SLIDESCPP-1642Merge Aspose C++ Library sources into Slides repositoryTask
    SLIDESCPP-1646Text shadow differs from .NETTask
    SLIDESCPP-1649CompoundArray does not affect GraphicsPath::Widen methodTask
    SLIDESCPP-1652Thin lines outline differs from .NETTask
    SLIDESCPP-1655Fix arrows drawing in test SLIDESNET_32304Task
    SLIDESCPP-1660Fix Aspose.Slides for C++ compilation errors occurred in LinuxTask
    SLIDESCPP-1661Investigate a possibility of applying kerning by means of HarfBuzz libraryTask
    SLIDESCPP-1664Merge Aspose C++ Library sources into CsPorter repositoryTask
    WORDSCPP-747Add ability for specifying necessary header files for handmade implemented methodsTask
    PDFCPP-895commit fix asposecpplib implement XmlReader.ReadToNextSibling (const String& name)Task
    WORDSCPP-732Generation of forward declaration for internal inner class does not take into account internal_as_public config optionTask
    CSPORTCPP-2376licenseUrl node is deprecatedInvestigation
    CSPORTCPP-2479Drop supporting 32-bit versions of products from release.Task
    PDFCPP-903Fix CsToCppPorter - ASPOSE_XXX_SHARED_API macros on type conversion operatorsTask
    PDFCPP-897patch boost.regex for using named groupsTask
    WORDSCPP-756Encoding.Clone() losing information about UTF8Encoding.EncoderShouldEmitUTF8IdentifierTask
    WORDSCPP-720Adding enum metadata for all enumsTask
    WORDSCPP-757Incorrect behaviour of StreamWriter.Writeline(chararray, index, count)Bug
    CSPORTCPP-2485Fix ‘Cancel’ command for building stepTask
    CSPORTCPP-2486Drop gtest binaries if possibleBug
    WORDSCPP-743Compilation error in ternary operator with boolean variable and item of boolean arrayTask

    Public API and Backward Incompatible Changes

    1. Some more calendar implementations were added under System::Globalization namespace.
    2. Several System::Drawing methods were added an/or implemented.
    3. Missing or nonimplemented members of System::Uri class and related classes were implemented.
    4. Some missing or nonimplemented members of System::Drawing namespace classes were implemented.
    5. HatchBrush class was implemented.
    6. Color class was improved.
    7. 32-bits VS compilation of ported code is no longer supported.
    8. GCC version used to build Linux version of the library was upgraded to 6.5.