Table of ContentsTable of Content Search 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++ What Converts to What Abstract Classes Auto Properties Break Statements Class Constructors Continue Statements Delegates Do While Statemetns Enums TypeCast Enums Events Exceptions Expected Exceptions Finalizers For Statements ForEach Statements Generic Classes Generic Delegates Generic Interfaces Generic Methods Generic Structs If Statements Indexers Lambda Expressions Methods Nested Classes Properties Return Statements Simple Class Simple Interface Simple Struct Simple Test Standard TypeCast Static Class Static Constructor Static-Methods Static Properties Switch Statements Test with Setup Methods Throw Statements Try Catch Finally Statements Try Catch Statements Try Finally Statements Var Expressions Virtual Methods While Statements 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 Using aliasing constructor to create a smart pointer Cmake Support Limitations and Bugs Porter Limitations and Bugs Library Limitations and Bugs Cpp Code Injection Release Notes 2020 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 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 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 HomeCodePorting.Native Product FamilyCodePorting.Native Cs2CppRelease Notes2019CodePorting.Native Cs2Cpp 19.2Major FeaturesGregorian calendar implementation was revised. Other previously unsupported calendars were implemented.Several bugs were fixed and several features implemented for System::Drawing classes.make_library option was supported in porter.‘includes’ attribute was supported for ‘implementation’ config file node.‘cpp_enum_enable_metadata’ option was added making it possible enabling metadata generation for all enums being ported.‘Abort’ menu action was fixed in Porter GUI for building step.Minor fixes.C2487 error was fixed when building ported code with per-class exports for classes implementing ICloneable, IComarable and IEquatable interfaces.Porter behavior was fixed when using ‘params’-typed parameter in exception class constructor.A bug was fixed when reading password-protected zip archives.DateTime constructor now throws valid ArgumentOutOfRangeException if it is passed invalid date or time components.BeginPixelProcessing() and EndPixelProcessing() methods were added into Bitmap class allowing it exposing pixels in same premultiplied format as .Net implementation.Graphics::SetClip and Graphics::FillRegion methods were implemented.Some more missing System::Drawing methods were implemented.System::Uri class was improved. Several compilation and runtime issues were fixed. Missing members were implemented, related classes and enums were updated as well.String-argumented constructor behavior was fixed for ObjectDisposedException, ArgumentNullException and ArgumentOutOfRangeException classes.Convinient constructor from char16_t subrange was added into String class.GraphicsPath::Widen method was fixed with Pen dash styles, CompoundArray and thin lines.Image cropping issues after rotating the image were fixed.HotkeyPrefix feature of StringBuilder class was supported.‘’ and ‘|#’ operators were supported for nullable primitives.‘Missing override keyword’ warnings of clang compiler were suppressed as porter currently doesn’t support auto-placing these.FocusScales feature of PathGradientBrush was supported.Color naming issues were fixed for predefined colors.IsIdentity feature of Matrix class was supported.PixelFormat detection was improved for Bitmap class.Scaling issues with Graphics::DrawImage method were fixed.LinearGradientBrush and PathGradientBrush missing methods were implemented.Several issues with Graphics and Rectangle classes were fixed.Some clipping issues with Graphics class were fixed.Transformed drawing of PathGradientBrush was fixed.Wrong image geometry was fixed for the cases when CompoundArray is used.Some service methods were added into System::Drawing classes to be used by Aspose products only.Graphics::DrawString method was fixed for the case of vertical text. Unexpected NullReferenceException thrown by this method was fixed.BitConverter::GetBytes method was implemented on Linux.Some fonts’ behavior was fixed on Linux.Text shadowing was fixed.Line caps were fixed in some cases.GCC compilations issues were fixed with image.h and enum operators.Some kerning issues were fixed.XmlReader::ReadToNextSibling() method was implemented.Nested internal classes forward declaration was fixed.License file was included into Nuget package as per new Nuget.org policy.Shared exports macro was fixed for type conversion operators.Named groups support was fixed for Regex and related classes.Encoding-related classes cloning was fixed.Behaviour of StreamWriter.Writeline(chararray, index, count) method was fixed.Some unwanted binaries were dropped from release package.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 ReleaseKeySummaryCategoryPDFCPP-881Fix error C2487BugWORDSCPP-710Rework globalization calendars classesTaskPDFCPP-886CsToCppPorter - parse throw exceptions with params ctorBugWORDSCPP-750ZipReaderPal can’t extract zip with password / TestAsian.TestJira8745ABugSLIDESCPP-1480Fix RegressionTests_v18_10.SLIDESNET_40578 testTaskSLIDESCPP-1478Investigate failed Effects.ImageTransfromOperation.BlurTests functional testsTaskSLIDESCPP-1486Investigate failed Effects.EffectFormat.BlurGrowTests functional testsTaskSLIDESCPP-1488Investigate failed Effects.EffectFormat.SoftEdgesTests functional testsTaskSLIDESCPP-1499Investigate failed Effects.EffectFormat.InnerShadowTests functional testsTaskSLIDESCPP-1485Enhance the implementation of the System::Uri classEnhancementSLIDESCPP-1523Pen dash styles do not affect GraphicsPath::Widen methodTaskSLIDESCPP-1524Image is cropped after applying a transformation matrixTaskSLIDESCPP-1525Build a single library release of Aspose.Slides for C++ by ClangTaskSLIDESCPP-1417Pick fixes for memory leaks and Clang builds from CsPorter repoTaskSLIDESCPP-1529Implement missing drawing methods of the Graphics classTaskSLIDESCPP-1531Implement missing auxiliary methods of the StringFormat classTaskSLIDESCPP-1532Implement missing auxiliary methods of the CustomLineCap classTaskSLIDESCPP-1530Implement missing auxiliary methods of the Graphics classTaskSLIDESCPP-1536Implement System::Drawing::Drawing2D::HatchBrush classTaskSLIDESCPP-1537Resolve Aspose.Slides for C++ v18.11 compilation errorsTaskSLIDESCPP-1545Disable compiler warnings for Aspose.Slides for C++ build by ClangTaskSLIDESCPP-1544Implement the FocusScales property of the PathGradientBrush classTaskSLIDESCPP-1540Implement Graphics::MeasureCharacterRanges methodTaskSLIDESCPP-1549Fix Color::get_Name method result for predefined colorsTaskSLIDESCPP-1550Fix Matrix::get_IsIdentity method behaviorTaskSLIDESCPP-1552Fix NotImplementedException while running RegressionTests_v14_10.SLIDESNET_35528 testTaskSLIDESCPP-1553Fix RegressionTests_v18_11.SLIDESNET_37020 testTaskSLIDESCPP-1541Add doxygen documentation to the newly implemented methodsTaskSLIDESCPP-1534Implement missing auxiliary methods of the PathGradientBrush classTaskSLIDESCPP-1569Analyze failed BasicTests tests of the Aspose.Metafiles.Tests.CppTaskSLIDESCPP-1570Analyze failed BrushTests tests of the Aspose.Metafiles.Tests.CppTaskSLIDESCPP-1572Improve clipping algorithm implemented in the Drawing::Graphics classTaskSLIDESCPP-1333Port Aspose.Metafiles.Tests project to C++TaskSLIDESCPP-1574Fix straight lines drawing when CompoundArray is usedTaskSLIDESCPP-1566Porter: Improve shared api export mechanismTaskSLIDESCPP-1573Porter: Implement a possibility to hide local symbols in ported codeTaskSLIDESCPP-1546Fix symbols export for Aspose.Slides for C++ build by GCCTaskSLIDESCPP-1494Fix RegressionTests_v16_11.SLIDESNET_37864 testTaskSLIDESCPP-1598Incorrect or missing gradient fillTaskSLIDESCPP-1599Incorrect emf geometry renderingTaskSLIDESCPP-1528Distance from the start of a line to the beginning of a dash pattern in C++ is different from .NETTaskSLIDESCPP-1600Missing part of the chartTaskSLIDESCPP-1602Move the ported code of Aspose.Slides.Drawing.Skia.Region to the Aspose C++ LibraryTaskSLIDESCPP-1619Fix TestDeck_067_StarsBanners.CheckPptx2PdfConversion testTaskSLIDESCPP-1609Vertical text is missing in generated SvgTaskSLIDESCPP-1628Investigate AutoShapeChecksumImport test group issues in LinuxTaskSLIDESCPP-1630Investigate tests which fail due to wrong or missing font in LinuxTaskSLIDESCPP-1640Fix asposecpplib regression found in tests FontConverterTestTaskSLIDESCPP-1641Fix the product compilation by gcc on Jenkins node 3TaskSLIDESCPP-1627Synchronize Aspose C++ Library sources between Slides and CsPorter repositories (v19.1)TaskSLIDESCPP-1642Merge Aspose C++ Library sources into Slides repositoryTaskSLIDESCPP-1646Text shadow differs from .NETTaskSLIDESCPP-1649CompoundArray does not affect GraphicsPath::Widen methodTaskSLIDESCPP-1652Thin lines outline differs from .NETTaskSLIDESCPP-1655Fix arrows drawing in test SLIDESNET_32304TaskSLIDESCPP-1660Fix Aspose.Slides for C++ compilation errors occurred in LinuxTaskSLIDESCPP-1661Investigate a possibility of applying kerning by means of HarfBuzz libraryTaskSLIDESCPP-1664Merge Aspose C++ Library sources into CsPorter repositoryTaskWORDSCPP-747Add ability for specifying necessary header files for handmade implemented methodsTaskPDFCPP-895commit fix asposecpplib implement XmlReader.ReadToNextSibling (const String& name)TaskWORDSCPP-732Generation of forward declaration for internal inner class does not take into account internal_as_public config optionTaskCSPORTCPP-2376licenseUrl node is deprecatedInvestigationCSPORTCPP-2479Drop supporting 32-bit versions of products from release.TaskPDFCPP-903Fix CsToCppPorter - ASPOSE_XXX_SHARED_API macros on type conversion operatorsTaskPDFCPP-897patch boost.regex for using named groupsTaskWORDSCPP-756Encoding.Clone() losing information about UTF8Encoding.EncoderShouldEmitUTF8IdentifierTaskWORDSCPP-720Adding enum metadata for all enumsTaskWORDSCPP-757Incorrect behaviour of StreamWriter.Writeline(chararray, index, count)BugCSPORTCPP-2485Fix ‘Cancel’ command for building stepTaskCSPORTCPP-2486Drop gtest binaries if possibleBugWORDSCPP-743Compilation error in ternary operator with boolean variable and item of boolean arrayTaskPublic API and Backward Incompatible ChangesSome more calendar implementations were added under System::Globalization namespace.Several System::Drawing methods were added an/or implemented.Missing or nonimplemented members of System::Uri class and related classes were implemented.Some missing or nonimplemented members of System::Drawing namespace classes were implemented.HatchBrush class was implemented.Color class was improved.32-bits VS compilation of ported code is no longer supported.GCC version used to build Linux version of the library was upgraded to 6.5.