Table of ContentsTable of Content Search 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 HomeCodePorting.Translator Product FamilyCodePorting.Translator Cs2CppRelease Notes2020CodePorting.Native Cs2Cpp 20.6CodePorting.Native Cs2Cpp 20.6Major Features The graphic subsystem was reworked significantly. Many rendering bugs were fixed. Image manipulation results are now closer to such in .Net.The Skia version used was updated.More LINQ methods were supported in ported code. This includes Select, OfType, Cast, Contains, Last, LastOrDefault. FirstOrDefault and First methods were fixed.Minor fixes Boundry checks for System::String::SubString() are now consistent with .Net behavior.Streams and enumerable objects comparison in ported tests is now being done the same way as in NUnit.Retrieval of 64-bit long file sizes was fixed.System::String::LastIndexOf() now supports invariant culture.Exceptions being thrown by the methods of System::String is now consistent with such in .Net.Signatures of System::String::StartsWith() and System::String::EndsWith() methods were put in line with .Net implementations.Performance of System::IO::Path::HasInvalidChars() method was slightly improved.Porter was fixed to work properly with command-line arguments with spaces in them.‘for_each_member_short_names’ option was supported by porter. By default, porter now generates for_each_member-related information with long names instead of short ones.has_operator_equal predicate was fixed to compile OK with GCC.LittleCMS dependency was dropped.The translation of the ‘string + Nullable’ operator was fixed.A potential unreported error issue with XmlTextReader was fixed.Behavior of CompareInfo::Compare(const String& a, const String& b, CompareOptions options) was fixed for some combinations of parameters.Some improvements were made to Doxygen comments.‘Unbox to nullable’ behavior was fixed to behave in line with .Net implementation.Assertion ported code for fixed for some cases involving nullable types and/or enums.References to arithmetic types were fixed in Doxygen documentation produced by the porter.XmlTextWriter no longer produces an error if the underlying stream was disposed of.Equals() call was fixed for Nullable types.Porter now processes documentation for public fields.The behavior of the ‘nunit_categories’ configuration file node was extended, making it possible to include all categories that are not excluded explicitly.‘emit’ method of MulticastDelegate class was renamed to ‘invoke’ to avoid issues when compiling the code in the Qt environment.A compiler warning was fixed coming from System::List’s IndexOf(T, int) method.Documentation for System::Boolean type was fixed.Func class is now capable of holding null-reference.Please consult the respective sections of our wiki for more information.Full List of Issues Covering all Changes in this Release KeySummaryCategoryEMAILCPP-218Fix nullptr cast to NullableBugSLIDESCPP-1873Rework Drawing::Pen without using SkLayerRasterizerTaskSLIDESCPP-1874Build asposecpplib using an updated Skia libraryTaskSLIDESCPP-1892Integrate Skia patches for CMakeTaskSLIDESCPP-1894Implement dash caps drawing via SkPathEffectTaskSLIDESCPP-1896Fix errors when compiling fontsTaskSLIDESCPP-1897Fix errors when compiling brushesTaskSLIDESCPP-1901Fix a wrong drawing the custom line capBugSLIDESCPP-1910Adjust build scripts for using Skia with aspose-cpp-libsTaskSLIDESCPP-1913Fix incorrect line fillingBugSLIDESCPP-1924Fix DashCap drawing for solid dash style linesBugSLIDESCPP-1930Fix tests asposecpplib with ClangBugSLIDESCPP-1931Fix a wrong scale for line capBugSLIDESCPP-1935Check color blending when using the reworked Drawing::Pen class.TaskSLIDESCPP-1939Fix errors when compile Drawing::ImageTaskSLIDESCPP-1943Fix errors when compiling asposecpplibTaskSLIDESCPP-1945Rework simple places in commented codeTaskSLIDESCPP-1946Fix a text drawingTaskSLIDESCPP-1947Rework a use of the color paletteTaskSLIDESCPP-1948Rework a use of the SkClipStack in the Drawing::GraphicsTaskSLIDESCPP-1949Rework a use of the SkTextBox in the Drawing::GraphicsTaskSLIDESCPP-1959Rework Drawing::TextureBrush for WrapMode::ClampTaskSLIDESCPP-1960Rework PathGradientBrush::ApplyPathGradientTaskSLIDESCPP-1961Rework GraphicsPath::AddStringImplTaskSLIDESCPP-1975Fix GraphicsTest.DrawStringLayoutTest_05 testBugSLIDESCPP-1976Fix GraphicsTest.DrawStringLayoutTest_06 testBugSLIDESCPP-1981Add UTF16 support to the new SkShaperTaskSLIDESCPP-1982Move the functionality from the old SkShaper to the new oneTaskSLIDESCPP-1983Fix memory leak in Drawing::GraphicsBugSLIDESCPP-1985Fix LinearGradientBrushTest.GammaCorrectionTestBugSLIDESCPP-1986Fix PenTest.CompoundArrayTest1BugSLIDESCPP-1987Fix PenTest.DashCapTest_01_FlatBugSLIDESCPP-1988Fix BGRA color tests for tiff formatBugSLIDESCPP-1989Fix Pen tests WidthTest_01 and WidthTest_02BugSLIDESCPP-1990Fix GifSupportTest.ConvertTest_BGRA_8888BugSLIDESCPP-1991Fix GraphicsTest.AntiAliasingTest_01BugSLIDESCPP-1992Fix BitmapTest.RotateFlipTestBugSLIDESCPP-1994Fix tests when load jpeg with CMYK color schemeBugSLIDESCPP-1999Fix TextRenderingHint settings usage when rendering textBugSLIDESCPP-2000Fix glyphs positioning in GraphicsPath::AddString callsBugSLIDESCPP-2002Merge two implementations of Graphics::DrawString methods into oneTaskSLIDESCPP-2007Fix glyphs positioning in Graphics::DrawString callsBugSLIDESCPP-2022Implement conversion using a color profile in SkTiffCodecTaskSLIDESCPP-2040Fix GraphicsTest.MeasureDrawString_01 testBugSLIDESCPP-2049Fix GifSupportTest.ConvertTest_Index_8 testBugSLIDESCPP-2050Fix GifSupportTest.ConvertTest_Index_8_4bit testBugSLIDESCPP-2057Fix pixel format definition in Drawing::BitmapTaskSLIDESCPP-2066Build asposecpplib under LinuxTaskSLIDESCPP-2069Fix a palette loss after calling Bitmap::RotateFlipBugSLIDESCPP-2078Fix GraphicsTest.MeasureStringTest_10 testBugSLIDESCPP-2079Fix DrawStringTests.Test_11 testBugSLIDESCPP-2080Fix TiffSupportTest.ColorfullTest_cmyk test that failed on LinuxBugSLIDESCPP-2084Fix DrawStringTests.Test_08 testBugSLIDESCPP-2085Fix DrawStringTests.Test_13 testBugSLIDESCPP-2126Update implementation of Bitmap::LockBits/UnlockBits for new SkiaTaskSLIDESCPP-2127Update implementation of Graphics::MeasureCharacterRanges for new SkiaTaskSLIDESCPP-2134Fix GraphicsTest.MeasureStringTest_07 testBugSLIDESCPP-2139Analyze Aspose.Slides for C++ errors built with new SkiaTaskSLIDESCPP-2144Fix GifSupportTest.LoadTest1BppGif testBugSLIDESCPP-2145Fix BitmapTest.LockBitsWithPixeFormat testBugSLIDESCPP-2146Fix TextureBrushTests.AlphaChannelTest testBugSLIDESCPP-2151Check currently disabled graphics tests with the new SkiaTaskSLIDESCPP-2180Fix symbolic fonts rendering in LinuxBugSLIDESCPP-2184Configure parameters saving images in PNG formatTaskSLIDESCPP-2192Analyze errors in the Aspose.Slides for C++ built with the new Skia (v20.1)TaskSLIDESCPP-2222Fix RegressionTests_v19_8.SLIDESNET_35683 testBugSLIDESCPP-2224Fix the calculation of System::Drawing::Font heightBugSLIDESCPP-2225Fix RegressionTests_v19_2.SLIDESNET_40624 testBugSLIDESCPP-2230Fix ArgumentException thrown from the Bitmap constructorBugSLIDESCPP-2242Fix text drawing in test RegressionTests_v18_2.SLIDESNET_39697BugSLIDESCPP-2243Fix background drawing in test RegressionTests_v19_2.SLIDESNET_34567BugSLIDESCPP-2256Fix test BitmapTest.ImageWithErrorInDataFormat_Png in LinuxBugSLIDESCPP-2270Fix text rendering issues in SLIDESJAVA_33709 testBugSLIDESCPP-2276Fix incorrect text clippingBugSLIDESCPP-2277Incorrect line spacingBugSLIDESCPP-2286Fix SEH exception in Bitmap::set_PaletteBugSLIDESCPP-2291Fix an issue with saving PNGBugSLIDESCPP-2320Сlean code as a result of code reviewTaskSLIDESCPP-2321Remove lcms2 dependencyBugSLIDESCPP-2322Fix failed graphics tests on the branch with new Skia in LinuxBugSLIDESCPP-2326Move the Tiff changes(dpi, compression, pixel format) to new SkiaTaskSLIDESCPP-2381Fix performance of the System::Drawing::Region::IsVisible methodImprovementSLIDESCPP-2388Fix an issue with saving 8bpp tiff imageBugSLIDESCPP-2434Incorrect font in a chartBugTASKSCPP-1409Improve nullable +/- ops to avoid “sting + nullable” ambiguityBugCSPORTCPP-3315Check releaseTaskSLIDESCPP-2385Disable failed functional for test FormulaTests_Common.ComparisonOperatorTestBugTASKSCPP-1414Implement equality assertions for IEnumerable instances.TaskSLIDESCPP-2416Fix references to POD types in the generated documentationBugPDFCPP-1297Generate examples for converting pdf to/from tex, xslfo, etc.TaskSLIDESCPP-2103Porter: Implement documentation comments translation for public fieldsTaskSLIDESCPP-2423Porter: Make an option to include all non-excluded test categoriesTaskTASKSCPP-1415Fix a C++ compiler warning on System::List’s IndexOf(T, int) method call (casting int64 to int)TaskCSPORTCPP-3331Fix error 404 for System::Boolean documentationBugWORDSCPP-969Implement IEnumerable extension methodsTaskPublic API and Backward Incompatible Changes Multiple changes were made to rendering results and graphics API.ZipEntry::GetCompressedBytes() method was supported.An overload of MemberInfo::GetCustomAttributes(bool) was supported.StringBuilder::set_Capacity() was implemented.A stub was added for XmlNode::Normalize().A default constructor was added into System::Func class.