ВЫзов CorBindToRuntimeEx из Delphi
От: Аноним  
Дата: 17.02.05 12:46
Оценка:
Сосбвенно вызвать получается, но pHost всегда = nil.
Соотвественно на pHost.Start; всё вылетает.
Что я не так делаю?
В проекте использую файл mscoree_TLB.pas полученный через tlbimp

type
  TCorBindToRuntimeEx = function(pwszVersion: PWideString; pwszBuildFlavor: PWideString;
    startupFlags: DWORD; rclsid: TCLSID; riid: TGUID; var ppv): HRESULT;

...............

procedure TForm1.Button1Click(Sender: TObject);
var
  hLib: Cardinal;
  CorBindToRuntimeEx: TCorBindToRuntimeEx;
  pHost: ICorRuntimeHost;
  pAppDomainUnk: IUnknown;
  pAppDomain: IUnknown;

  hRes: HRESULT;
begin
  hLib := LoadLibrary('Mscoree.dll');

  @CorBindToRuntimeEx := GetProcAddress(hLib, 'CorBindToRuntimeEx');
  if @CorBindToRuntimeEx = nil then
    Exit;
  hRes := CorBindToRuntimeEx(PWideString(PChar('v1.1.4322')), PWideString(PChar('wks')), 2,
    CLASS_CorRuntimeHost, IID_ICorRuntimeHost, pHost);
  OleCheck(hRes);
  if Succeeded(hRes) then
  begin
    pHost.Start;
  end;
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.