Major Features
- CodePorting.Native.Cs2Cpp.PortingControl Nuget package was released containing definitions of attributes recognized by the porter.
- CppNonConstMethod, CppConstWrapper, and CppOverride attributes were supported by the porter.
- VS2019 support was improved and added to the GUI application.
- Increment and decrement operators are now properly ported for enums.
- MulticastDelegate constructor was improved to avoid ambiguity in ported code for e. g. “string vs delegate” overloads.
Minor fixes
- The bug was fixed within SharedPtr class-leading to issues assigning weak pointers to shared ones.
- XMLNS generation in XmlTextWriter class was made closer to .Net Framework behavior.
- operator + was fixed for ‘String + null object’ case.
- Native’s visualizers were improved significantly.
- db_data_reader.h compilation issues were fixed.
- GraphicsPath::AddArc() was fixed for some cases.
- Graphics::DrawString() was improved to use alignment properties.
- XmlTextReader was fixed to use XmlNamespaceManager property.
- Some memory management bugs were fixed for XmlTextReader class.
- EnumValues::GetValueOf() was fixed for the case of integer values.
- Issue disconnecting MulticastDelegate was fixed.
- Some pointer implementations were removed from public headers.
- Signatures of some Array methods were improved by adding ‘const’ qualifiers to their arguments.
- Exception-to-object and object-to-exception casts were fixed in ported code.
- Compilation errors invoking ValueType’s methods from ported structs were fixed.
- Assignment to variables of ‘System::Type’ type was fixed in ported code.
- The Const getter deduction algorithm was improved in porter.
- Missing includes when translating delegates were fixed.
- Culture/locale fallback mechanism was added.
- IEnumerator now inherits IDisposable, same as in .Net.
- Enum::GetUnderlyingType() was supported.
- System::Collections::List::ToArray() method was fixed.
- A crash was fixed when unloading Aspose C++ products dynamically.
- 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
Key | Summary | Category |
---|---|---|
CSPORTCPP-3170 | Support CodePorting.Native Cs2Cpp | Task |
CSPORTCPP-3132 | Add Attributes build into a release package | Task |
EMAILCPP-202 | Transition to the common version of asposecpplib (CodePorting.Native Cs2Cpp) | Task |
WORDSCPP-930 | Improve default xmlns handling | Task |
PDFCPP-1192 | fix NullReference in Aspsosecpplib | Bug |
TASKSCPP-1377 | Fix invalid shared API reference in db_data_reader.h (asposecpplib) | Bug |
WORDSCPP-855 | TestIndexAndTables.TestToc - docx is different | Bug |
SLIDESCPP-2240 | Fix GraphicsPath::AddArc calculations | Bug |
SLIDESCPP-2247 | Fix the wrong position of text and legends in charts (20.2) | Enhancement |
WORDSCPP-933 | XmlTextReader doesn’t use XmlParserContext.NamespaceManager property | Bug |
PDFCPP-1198 | Fix EnumValuesBase::Parse | Enhancement |
CSPORTCPP-3133 | Hide cryptographic provider’s implementations | Task |
CSPORTCPP-3188 | The ported assignment of the exception object to object fails with a compilation error. | Bug |
SLIDESCPP-2255 | Porter: Improve translation of GetHashCode() method invocation for value types | Bug |
WORDSCPP-937 | Use the “proxy” approach to extends lifetime of objects | Task |
EMAILCPP-193 | Porting Exchange protocol | Task |
WORDSCPP-936 | Support for BCP-47 compatible culture names | Task |
PDFCPP-1212 | Fix Cs2Cpp porter and Asposecpplib | Task |
CSPORTCPP-2907 | Support VS2019 | Task |
WORDSCPP-939 | Dynamically Loading Words DLL Crashes the App with Access violation Exception | Bug |
WORDSCPP-826 | PKCS12/PFX format support | Task |
Public API and Backward Incompatible Changes
- System::Security::Cryptography::ToBase64Transform class was supported.
- CsToCppPorter::Details::MemoryManagement::ExtendLifetime() method was added. An overload of CsToCppPorter::Details::MemoryManagement::BindLifetime() method was added.
- System::Threading::Monitor class was supported.
- WeakReference::operator ## () was supported.
- System::Collections::Specialized::NameValueCollection class was supported.
- System::Web::Services::Protocols::SoapHeaderCollection class was made publically available.
- System::UriBuilder::set_Port() method was added.
- A new overload of System::Text::RegularExpressions::Regex::Replace() method was added.