6.0.7.5 03-April-2023
- Fixed method not found exception thrown when calling 2 methods of the same name with one as a generic method.
- Stability and performance improvements.
.Net DLL/WSDL Import Utility
- Generates fields or properties which returns C# Action<> or Func<> delegates.
- Fixed Select All button functionality on the ".Net Types" page.
- Change default value of ExcludeInheritedTypeMethods property on "Choose .Net Assemblies" page from false to true.
- Fixed duplicate enum names generated for different enum types.
- Generates generic types with only type names as identifiers.
- Optimised Delphi codes generated by the utility.
6.0.7.4 22-September-2021
- Supports Delphi 11 Alexandria.
- Fixed WSDL load assembly error due to default and unsecured security protocol.
- Fixed error when converting UInt32 to a .Net Color in Delphi.
.Net DLL/WSDL Import Utility
- Generates return type event handlers that are compatible with the standard stdcall event handler type.
- Generates all enumeration types in an imported assembly.
- Generates all methods in a type including the base methods in an imported assembly.
6.0.7.3 01-April-2021
- Resolve error with .Net static object callbacks into Delphi generic anonymous events.
- Improve library dependency search when loading netstandard assembly and it dependencies.
- Fixed anonymous callbacks which fires more than once.
.Net DLL/WSDL Import Utility
- Resolve issues related to the Assembly dependency tab.
- Provides option to exclude unicode characters as type names when generating Delphi classes.
6.0.7.2 01-February-2021
- Support Multi-threading.
-
Added TClrAssemblyDependencyLoader class for specifying dependent assembly directories (When loading assemblies,
any missing dependent assemblies will be searched in these directories).
- Import process options are now stored in the generated files.
-
Added a callback manager class for converting method callbacks in .Net to it equivalents in Delphi and vice-versa.
For Example; .Net Action<>, Func<> or any callback delegates can be converted to it equivalents in Delphi
anonymous method types like TProc<>, TFunc<> etc.
- Fixed error when converting .Net bitwise enum in methods to Delphi and vice-versa.
- Stability and Usability improvements.
- Product Edition Update: Enterprise Edition has been changed to Framework Edition.
.Net DLL/WSDL Import Utility
- Fixed error when importing .Net class with method and event having the same name.
- Fixed error when generating class with multiple indexer properties.
-
Converts generic Action and Func Delegates to it equivalent callbacks in Delphi instead of
generating _GenericAction and _GenericFunc interfaces.
- Added new load option page to allow a user to specify the directories of the dependent assemblies of the assembly to import.
6.0.7.1 02-June-2020
- Compatible with Delphi 10.4 Sydney.
- Improve Support for .Net Standard 2.1.
- Fixed error converting array to GenericIList or GenericList.
- Fixed TClrObject constructor error when creating instance with variant type value as parameter.
- Resolve Delphi XE compatibility issues.
- Resolve Delphi 2010 compatibility issues.
.Net DLL/WSDL Import Utility
- Fixed static methods not generated when importing .Net libraries.
6.0.7.0 20-April-2020
- Support for .Net Standard 2.1.
- Support for .Net Framework 4.6.1.
- Fixed E2266 error: "Only one of a set of overloaded methods can be published".
- Fixed error when converting UInt32 to a .Net Color in Delphi.
- Allows conversion from .Net System.Object[] array to _GenericList type.
- Improve product licensing and subscription process.
.Net DLL/WSDL Import Utility
- Fixed error in generated methods with var/out parameters which is of type enum.
- Converts nullable types to it equivalent in Delphi (Example: int? will be converted to NullableInt32).
-
Converts generic list of type decimal to a _GenericList instead of IList<_decimal>
to prevent type cast error.
- Generates all indexed properties for classes with indexers.
6.0.6.2 08-July-2019
-
Added OnAssemblyLoad, OnAssemblyResolve, OnProcessExit, OnResourceResolve and OnTypeResolve events to the TClrAppDomain class.
The OnAssemblyLoad event occurs when a .Net assembly is loaded.
The OnAssemblyResolve event occurs when the resolution of a .Net assembly fails.
The OnProcessExit event occurs occurs when the default application domain's parent process exits.
The OnResourceResolve event occurs when the resolution of a resource fails because the resource is not a valid linked/embedded resource in the assembly.
The OnTypeResolve event occurs when the resolution of a type fails.
- Added UnsafeLoadFrom method to TClrAssembly class which will allow you to load any .net dll downloaded from the web, which is marked as blocked by the operating system.
.Net DLL/WSDL Import Utility
- Fixed error in the generated property Get method in a class if the return type is a clrlibrary interface array.
- Fixed line too long error in the generated unit.
-
All IDictionary<,> type will be converted to GenericIDictionary instead of GenericDictionary to prevent
access violation when accessing a property or method whose return type inherits from IDictionary<,> and not Dictionary<,> type.
-
Added another load option called UnsafeLoadFrom option which can be used
to load a local assembly that the operating system has flagged as having been loaded
from the Web (for example, a temporary file that was downloaded from the Internet or intranet).
- Support 64bit .Net DLL (Can load and import any 64bit .Net assemblies).
6.0.6.1 01-April-2019
- Resolved Product License Validation and Registration issues.
- Fixed "Access Violation Exception" when accessing a generated method or property which returns an array of object as interface.
.Net DLL/WSDL Import Utility
- Fixed issues with generated array interface where the base interface is declared as interfaceIClrArray instead of interface(IClrArray).
-
Fixed issues with generated class where the class method parameters have the same name but with different CASES.
(Note: Delphi method parameter names are not CASE SENSITIVE whereas C# method parameter names are.)
6.0.6.0 15-Jan-2019
- Supports Delphi 10.3 Rio.
- Fixed "Could not convert variant of type (Unknown) into type (OleStr) error" from a method that returns an array in a class generated by the Import Utility.
- Fixed "access violation error" from a method that returns an array in a class generated by the Import Utility.
-
Fixed "Unable to wrap object of type 'System.Collections.Generic.List`1+Enumerator[System.String]' with type 'CNClrLibrary.Collections.IEnumerator' error" when
converting .Net generic list to a Delphi generic list.
- Fixed bug in host container when hosting .Net WPF controls in Delphi.
- Win64 Apps using the Runtime Library no longer requires borlndmm.dll when deploying app.
- Usability improvements.
.Net DLL/WSDL Import Utility
- Include Guid in the generated interfaces to allow generic casting between the generated interfaces and its inherited classes.
- Eventhandler is generated with sender argument as TClrBaseObject type instead of IClrBaseObject interface to prevent access violation.
- Allows multiple selection and loading of WSDL source files. This is required to prevent parameter error in Wsdl if other dependent wsdl files cannot be loaded.
- Stability and performance improvements.
6.0.5.1 24-Aug-2018
- Added Cast methods (AsType<>, Cast<>, IsType<> etc) in TClrBaseObject for easy casting between inherited .Net types in Delphi.
.Net DLL/WSDL Import Utility
- Removed Guid Strings from the generated interfaces (Not required).
- Fixed error when converting some .Net generic types to Delphi.
6.0.5.0 06-Aug-2018
- Fix error triggered when converting .Net object to it base generic type from Delphi.
- No support for Delphi Codegear 2009.
.Net DLL/WSDL Import Utility
- Improved performance.
- Optimised Delphi codes generated by the utility.
- Fix WSDL load error by modifying the WSDL engine to load any WSDL documents and generate Delphi classes from the loaded wsdl types.
-
The utility generates an interface unit from the types of the imported assemblies.
Notes:
- These interfaces are inherited by the classes also generated by the utility.
-
The purpose of introducing the interface is to fix memory issues in the generated pas files
by allowing Delphi to free objects automatically when the object is out of scope.
- Filename: xxxxxxxx.Intf.pas (xxxxxxxx is the full name of the .Net Assembly imported).
-
Implement Delphi generic nullable class (Nullable<
>) in CNClrLib.Generic.Helper
which can be used to convert between .Net and Delphi Generic Nullable types.
- Fixed .Net type properties and fields which returns generic list or dictionary and not visible on the import .Net Type list.
-
Some unit pas files generated by the utility have changed:
- xxxxxxxxConsts.pas unit is changed to xxxxxxxxx.Consts.pas
- xxxxxxxxEnums.pas unit is changed to xxxxxxxxx.Enums.pas
6.0.4.0 09-May-2018
- Fixed error triggered by invoking methods with generic parameters.
- Register special key events in TClrContainer which allows hosted .Net Controls use tab, up arrow, down arrow, left arrow, right arrow etc keys in Delphi.
.Net DLL/WSDL Import Utility
- Optimised Delphi codes generated by the utility.
- Fixed reflection type load exception when generating delphi codes from GAC Asemblies.
6.0.3.0 02-April-2018
- Introduced a new method called AsType in TClrBaseObject class for casting .Net derived class to base class in Delphi.
-
Introduced a new unit called CNClrLib.Generic.Helper which contains helper class methods for converting .Net generic lists or
dictionaries to Delphi generic List (TObjectList<>) or dictionary (TObjectDictionary<,>) and vice-versa.
.Net DLL/WSDL Import Utility
- Optimise Delphi generated codes.
6.0.2.0 22-Jan-2018
- Fixed "Object not set to an instance" error if a nil parameter is passed to TClrBaseObject constructor.
- Modified TClrBaseObject class to prevent the following error "This type has a ComVisible(false) parent in its hierarchy, therefore QueryInterface calls for IDispatch or class interfaces are disallowed."
.Net DLL/WSDL Import Utility
- Delphi Code generator engine modified to produce clean and optimised delphi codes.
6.0.1.0 20-Oct-2017
- Introduced a new class for handling event source notification in the host unit.
- Introduced a new wrapper class for static fields, methods and properties of System.Type in the host unit.
- Changed any reference of TClrActivator in the host unit to TDispatchActivator Class.
- Added extra methods to TDispatchActivator Class.
.Net DLL/WSDL Import Utility
- Object reference not set to an instance of an object error when generating Delphi Codes.
- E2003 Undeclared identifier: 'IList' error in the generated Delphi Units. IList is changed to _IList.
6.0.0.1 14-Aug-2017
- Fixed bug with creating an instance of the TClrObjectArray or TClrArray Class
- Fixed bugs in .Net Assembly/WSDL Import Tools to generate Delphi codes from .Net assemblies/WSDL without compiler errors.
-
Changed return type of the methods for loading .net assemblies in TClrAssembly and TClrAppDomain Classes from TClrAssembly to _Assembly interface in order to prevent
possible memory leaks if the user forgets to free the loaded .net assemblies.
- Fixed "Constructor on type 'CNClrLibrary.Security.Cryptography.Cryptostream' not found" error
6.0.0.0 01-Jun-2017
- Implemented mscorlib types as part of the runtime library
- Added new classes and improve the existing classes in the host class library
- Support .Net Framework 4.5.2 or Higher
- Support Delphi 2009 or Higher
- Added .Net Assembly/WSDL Import Tools
- Usability improvements
- Stability and performance improvements
5.0.0.0 10-Oct-2015
- Major changes to the Runtime Library
- Support 64bit Delphi application
4.0.3.1 05-May-2015
- Support .Net Framework 4.5 or Higher
4.0.3.0 15-Feb-2015
- Fixed bugs in CryptoStream type interface to avoid the error ""EOleException: Constructor on type 'CNCorLib.Sys.Security.Cryptography.CryptoStream' not found"
4.0.2.0 01-Dec-2014
- Fixed bugs in Runtime Host class to prevent "System.NullReferenceException"
4.0.1.0 05-Sep-2014
- Fixed bugs in Mscorlib type interfaces
4.0.0.0 29-Oct-2014
- Added Delphi Framework Class Library
- Support .Net Framework 4.0 or Higher
- Support Delphi 7 and Higher
2.0.0.0 23-Jan-2014
- Fixed bugs with I/O operations
- Usability improvements
- Stability and performance improvements
1.0.0.0 01-Aug-2013
- First release of .Net Runtime Library
- Delphi 7 is supported
- Support .Net Framework 3.0
© 2020 CrystalNet Technologies LTD. All rights reserved.