Использование Guava :
byte[] bytearray = Ints.toByteArray(1695609641);
В Библиотеке кода джедая (JCL) - свободный - существует JclDotNet.pas, содержа класс TJclClrHost, вероятно, делая то, что Вы хотите:
TJclClrHost = class(TJclClrBase, ICorRuntimeHost)
private
FDefaultInterface: ICorRuntimeHost;
FAppDomains: TObjectList;
procedure EnumAppDomains;
function GetAppDomain(const Idx: Integer): TJclClrAppDomain;
function GetAppDomainCount: Integer;
function GetDefaultAppDomain: IJclClrAppDomain;
function GetCurrentAppDomain: IJclClrAppDomain;
protected
function AddAppDomain(const AppDomain: TJclClrAppDomain): Integer;
function RemoveAppDomain(const AppDomain: TJclClrAppDomain): Integer;
public
constructor Create(const ClrVer: WideString = '';
const Flavor: TJclClrHostFlavor = hfWorkStation;
const ConcurrentGC: Boolean = True;
const LoaderFlags: TJclClrHostLoaderFlags = [hlOptSingleDomain]);
destructor Destroy; override;
procedure Start;
procedure Stop;
procedure Refresh;
function CreateDomainSetup: TJclClrAppDomainSetup;
function CreateAppDomain(const Name: WideString;
const Setup: TJclClrAppDomainSetup = nil;
const Evidence: IJclClrEvidence = nil): TJclClrAppDomain;
function FindAppDomain(const Intf: IJclClrAppDomain; var Ret: TJclClrAppDomain): Boolean; overload;
function FindAppDomain(const Name: WideString; var Ret: TJclClrAppDomain): Boolean; overload;
class function CorSystemDirectory: WideString;
class function CorVersion: WideString;
class function CorRequiredVersion: WideString;
class procedure GetClrVersions(VersionNames: TWideStrings); overload;
class procedure GetClrVersions(VersionNames: TStrings); overload;
property DefaultInterface: ICorRuntimeHost read FDefaultInterface implements ICorRuntimeHost;
property AppDomains[const Idx: Integer]: TJclClrAppDomain read GetAppDomain; default;
property AppDomainCount: Integer read GetAppDomainCount;
property DefaultAppDomain: IJclClrAppDomain read GetDefaultAppDomain;
property CurrentAppDomain: IJclClrAppDomain read GetCurrentAppDomain;
end;
Вы могли использовать Delphi для .NET и неуправляемого экспорта, также названного обратным P/Invoke.
Это по существу позволяет Вам создать .NET .dll, который имеет полный доступ к платформе .NET, но может быть загружен любым родным языком, точно так же, как Вы были бы с любым .dll, и без издержек com interop.
Вот простой пример: http://cc.codegear.com/Item/22688
У меня была эта точно та же самая проблема. Я работал в магазине Delphi, и они хотели начать добавлять функциональность к приложению Delphi прежней версии с.NET и C#. Я смотрел на Управляемый-VLC, и я решил пропустить его, поскольку я чувствовал, что это имело некоторые серьезные проблемы. Я нашел что-то намного более простым здесь: Delphi.NET .Примечание: это не версия Delphi, который работает исходно на.NET. Это - проект с открытым исходным кодом позволить приложениям Delphi прежней версии получать доступ к функциональности.NET через COM и отражение. Даже при том, что это старо, это работает как очарование, так как это использует COM. Я проверю, что это работает с.NET 2.0 и 3.5. Я получил.NET DLL, полностью интегрированный в наше приложение Delphi 5 прежней версии в течение многих дней. Мой босс думал, что я был супергероем.Удачи!
Хостинг CLR самостоятельно не является всем этим трудным (особенно, если Вы просто используете единственный AppDomain). Можно использовать COM, базирующийся, размещая API, чтобы запустить время выполнения, блоки загрузки, создать объекты и вызвать методы на них.
существует много информации онлайн, например, документация MSDN относительно" Хостинг Общеязыковой среды выполнения ". ( новый домашний )
Я могу сказать Вам из собственного опыта, что взаимодействие с .NET от Delphi не является никаким пикником. Я - парень .NET, но работал в .NET и магазине Delphi некоторое время. Я управлял несколькими проектами, которые записал в .NET (WinForms и WPF), но назвал Delphi. Наши парни Delphi записали уровень взаимодействия для Delphi для обращений к библиотекам .NET, так как все наши новые продукты писались в .NET. Это была проблема нам (и они были хорошими разработчиками Delphi). Если бы мы, возможно, купили хороший сторонняя библиотека, чтобы сделать interop для нас, это более, чем стоило бы того. Я держал пари, что мы потратили тысячи долларов в человеко-часах пишущие и отлаживающие проблемы с interop от Delphi до .NET.
я взял бы ту библиотеку Managed-VLC для тест-драйва, чтобы видеть, как хорошо она работает. Если это соответствует своей рекламе, то это легко стоит 250$.
Можно использовать классы .NET в качестве COM-объектов в Delphi:
Теперь, можно получить доступ к классам от блока .NET, которые экспортируются в библиотеке типов.
Смотрите мой вопрос для примера хостинга CLR в Delphi с JCL.