delphi
library kCom; uses ComServ, ComDe_TLB in 'ComDe_TLB.pas', UMain in 'UMain.pas' {SomeThing: CoClass}; exports DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer; {$R *.TLB} {$R *.RES} begin end.
delphi
unit UMain; {$WARN SYMBOL_PLATFORM OFF} interface uses Windows, ActiveX, Classes, ComObj, ComDe_TLB, StdVcl, Dialogs; type TSomeThing = class(TTypedComObject, ISomeThing) protected procedure ShowString(const S: String); end; implementation uses ComServ; procedure TSomeThing.ShowString(const S: string); begin showmessage(s); end; initialization TTypedComObjectFactory.Create(ComServer, TSomeThing, Class_SomeThing, ciMultiInstance, tmApartment); end.
Voy a Run > Register ActiveX Server y lo instala.
Ahora me gustaría poder llamarlo desde otra aplicación o mediante un script. Utilicé otras veces la función CreateOleObject pero no se como implementarla para usar mi objeto Com.
delphi
uses ComObj; ... var Obj: Variant; begin Obj:= CreateOleObject('kCom'); //Aquí suelta el error end;
Espero que me puedan ayudar, saludos.