Hi Andries!
  I m also looking for same.
  I want to use .net assembly in delphi for win32 application.
  Do you have any info on this topic to share.
  I m doing this by creating c# dll,provide strong name, register this assembly 
and the created tlb of it. and using that tlb.
  it goes ok but the problem is i can instantiate object of my c# class, access 
method,
  but while running it gives an Access violation error.
  can u help me to get rid of this problem.
  Thanks
   
  with regards
  Bijal

Andries Bos <[EMAIL PROTECTED]> wrote:
  Hello,

Is there a way to load a .NET assembly from a Delphi win 32 application without 
using COM? 
I've found things like MSCOREE.DLL, ClrCreateManagedInstance and 
CorBindToRuntimeEx, but i can't put them together to get them working.


This is what i've got so far:

unit Unit3;

interface

type
  InxInterface = Pointer;

  TClrCreateManagedInstance = function(aTypeName: PWideChar; const aInterface: 
TGUID; out aObject):
    HRESULT; stdcall;

function LoadManagedClass(aClassName, anAssemblyName: ShortString; const 
aInterface: TGUID): InxInterface; stdcall; Export;

implementation

uses
  sysutils, stdctrls, windows, Dialogs;

function LoadManagedClass(aClassName, anAssemblyName: ShortString; const
  aInterface: TGUID): InxInterface; stdcall; export;
var
  netClass: WideString;
  assembly: Integer;
  ClrCreateManagedInstance: TClrCreateManagedInstance;
  dllInst: HINST;
begin
  result := nil;
  assembly := -1;
  anAssemblyName := ExtractFileName(anAssemblyName);

  netclass := aClassName + ', ' + anAssemblyName;

  dllInst := LoadLibrary('mscoree.dll');
  if dllInst <> 0 then
  begin
  //GetProcAddress(dllInst, 'CorBindToRuntimeEx')
    ClrCreateManagedInstance := 
TClrCreateManagedInstance(GetProcAddress(dllInst, 'ClrCreateManagedInstance')); 

{ the dllInst does return a valid value
GetProcAddress(dllInst, 'ClrCreateManagedInstance') does return nil
}
    if assigned(ClrCreateManagedInstance) then
      assembly := ClrCreateManagedInstance(PWideChar(netclass), aInterface, 
Result);
  end;
  if assembly <> 0 then
   
end;

end.

So the dll is loadeds, but 'ClrCreateManagedInstance' is noit found.

Any suggestions, or even better a sample code would be appreciated.

Regards

Andries

            
---------------------------------
Blab-away for as little as 1ยข/min. Make  PC-to-Phone Calls using Yahoo! 
Messenger with Voice.

[Non-text portions of this message have been removed]



-----------------------------------------------------
Home page: http://groups.yahoo.com/group/delphi-en/
To unsubscribe: [EMAIL PROTECTED] 


    
---------------------------------
  YAHOO! GROUPS LINKS 

    
    Visit your group "delphi-en" on the web.
    
    To unsubscribe from this group, send an email to:
 [EMAIL PROTECTED]
    
    Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 

    
---------------------------------
  



                                
---------------------------------
 Jiyo cricket on Yahoo! India cricket
Yahoo! Messenger Mobile Stay in touch with your buddies all the time.

[Non-text portions of this message have been removed]



-----------------------------------------------------
Home page: http://groups.yahoo.com/group/delphi-en/
To unsubscribe: [EMAIL PROTECTED] 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/delphi-en/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to