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++ 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 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 2021 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.Native Product FamilyCodePorting.Native Cs2CppRelease Notes2019CodePorting.Native Cs2Cpp 19.3CodePorting.Native Cs2Cpp 19.3Major Features Visual Studio warnings were fixed in both ported code and library headers.force_public_headers option was added which makes sure no private headers are included from public ones.The header and source files which turn out empty due to entity skipping are no longer generated.In Porter GUI, path to porter configuration was not updated when loading the workspace. This was now fixed.Minor fixes. Missing calls to type conversion operators were fixed for static variables initializers.String::Format() method now works with arrays of non-pointer types (e. g. strings) and with floating point types.Error message when trying to build 32-bit code in VS against product Nuget package was fixed.MD5CryptoServiceProvider class default constructor was implemented.Exporting macro for DateTime::get_Today() was fixed.cpp_enum_enable_metadata option was fixed to work for public enums only to avoid growing binary size too much.export_internals option attribute was fixed. Previously, some internal classes were exported.Explicit interface implementations now port as public which fixes some compilation issues.Contexpr ordering was fixed for some types of expressions. Include generation for these was fixed as well.Please consult respective sections of our wiki for more information.Full List of Issues Covering all Changes in this Release KeySummaryCategoryPDFCPP-911CsToCppPorter - type conversion on static vaiable initializationTaskPDFCPP-912asposecpplib - fix String.FormatTaskCSPORTCPP-1663Clean library warningsTaskCSPORTCPP-2515Fix error message in NuGet package at building with 32bit compiler.TaskPDFCPP-916Fix MD5CryptoServiceProviderTaskWORDSCPP-677Move to the public includes any structs used as class fields (even private)BugWORDSCPP-765Generating enum metadata for public enums onlyTaskPDFCPP-920Fix String::Format for double and floatTaskWORDSCPP-762export_internals#true porter configuration option doesn’t work as expectedBugWORDSCPP-481Incorrect porting of default access specifier of interface implementationBugWORDSCPP-763Interface implementation ignores make_shared_lib/export_internals#true porter optionWORDSCPP-360Reorder constexpr field declaration.TaskWORDSCPP-745Implement CppDelete attribute for excluding whole from portingTaskCSPORTCPP-2571Fix workspace loadingBugPublic API and Backward Incompatible Changes None.