Как использовать блок .NET от Win32 без регистрации?

Приведенная ниже ссылка объясняет шаги по установке WordPress в AWS RC2

http://coenraets.org/blog/2012/01/setting-up-wordpress-on-amazon-ec2- в-5-минут /

9
задан Community 23 May 2017 в 12:34
поделиться

3 ответа

Как ни странно, я не смог найти ответ по StackOverflow, и в Сети не так много, особенно для Delphi. Я нашел решение из примеров, размещенных здесь . Here's what I got at the end:

function ClrCreateManagedInstance(pTypeName: PWideChar; const riid: TIID;
out ppObject): HRESULT; stdcall; external 'mscoree.dll';

procedure TMyDotNetInterop.InitDotNetAssemblyLibrary;
var
  MyIntf: IMyIntf;
hr: HRESULT;
NetClassName: WideString;
begin
//Partial assembly name works but full assembly name is preffered.
    NetClassName := 'MyCompany.MyDLLName.MyClassThatImplementsIMyIntf,
          MyCompany.MyDLLName';
    hr := ClrCreateManagedInstance(PWideChar(NetClassName), IMyIntf, MyIntf);
    //Check for error. Possible exception is EOleException with ErrorCode
    //FUSION_E_INVALID_NAME = $80131047 2148732999 : The given assembly name 
    //or codebase was invalid.
    //COR_E_TYPELOAD = $80131522 - "Could not find or load a specific type 
    //(class, enum, etc)"
    //E_NOINTERFACE = $80004002 - "Interface not supported".
    OleCheck(hr);
end;

BTW, depending on the situation, you might want to load mscoree.dll dynamically, because it might be not present on the system (XP with no .Net Framework)

EDIT: Unfortunately, this was deprecated and stopped working with .Net4 as I just found out. This leaves only two options - CLR hosting and unmanaged export. Also, debugging of .Net4 COM code is broken.

8
ответ дан 4 December 2019 в 21:51
поделиться

Maybe using RegFreeCOM and a COm-Callable Wrapper.

http://msdn.microsoft.com/en-us/magazine/cc188708.aspx

1
ответ дан 4 December 2019 в 21:51
поделиться

К сожалению, этого нельзя сделать (насколько мне известно) без предоставления COM-объекта, поскольку DLL-библиотеки .NET не TRULY скомпилированы в библиотеку, которую может загрузить Delphi (или что-либо еще), поскольку все это делается компилятором JIT во время выполнения.

0
ответ дан 4 December 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: