FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Objeto OLE
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Objeto OLE
Posted: Tue May 23, 2017 07:16 PM

Buenas tardes.
Me pasaron un dll y un tlb que me informan son librerias de clases de .NET las cuales contienen funciones que necesito utilizar, estoy probando con la funcion CreateOLEObject(), los que desarrollaron esta dll dan ejemplos de uso en VB, en Delphi y VFox, en delphi lo usan como un objeto OLE y por ahi arranque, los autores de la dll no tienen ni idea de como usar esto en FWH y yo tampoco. Quizas alguien me sepa orientar.
Estoy usando FWH 08 y BCC

Muchas gracias.
Jorge Jaurena

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Objeto OLE
Posted: Tue May 23, 2017 09:42 PM

Jorge,

> en delphi lo usan como un objeto OLE y por ahi arranque

puedes mostrar el c贸digo que has implementado/probado ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Objeto OLE
Posted: Wed May 24, 2017 01:16 PM

Buen dia Antonio,

Aclaro que me indicaron los autores de la libreria que cumpla dos pasos para registrarla en windows los que hice sin problemas.
Utilize el GacUtil.exe y luego el RegAsm.exe

Me base en el ejemplo de FWH (ole.prg) y escribi esto:

Controlador:=CreateOLEObject('DataLinkLibrary.IController')
hSections := OLEGetProperty(Controlador,"Sections")
OLESetProperty(Controlador,"Nuevo","DEMO")

La primer linea es como lo declaran en delphi, esa pasa bien, en la segunda y tercera da un error que es el siguiente.
Crea el hb_out.log y el contenido es


Application Exception - E:\CEM-44\CEM44DLL.EXE
Terminated at: 2017.05.24 10:02:26

Exception Code:C0000005
Exception Address:0041645E
EAX:0019F9C4  EBX:00000000  ECX:004979F0  EDX:0019F9C8
ESI:00000000  EDI:02562664 EBP:0019F9CC
CS:EIP:0023:0041645E  SS:ESP:002B:0019F994
DS:002B  ES:002B  FS:0053  GS:002B
Flags:00010246
CS:EIP: 8B 0B FF 51 14 A3 44 41 4F 00 FF 75 FC E8 40 A0
SS:ESP: 00000000 00506690 0019F9C8 00000001 00000400 0019F9C4 004974C8 0043DC88 000000B4 00000000 00507BF0 02561F64 0019F9F8 0257C48C 0019F9F8 00448F68

C stack:
EIP:     EBP:       Frame: OldEBP, RetAddr, Params...
0041645E 0019F9CC   0019F9F8 00448F68 000000B4 00000000 00507BF0 0000001E 00000000 00000000 00000000 02570000
00448F68 0019F9F8   0019FAFC 0044304A 00000002 025625E4 00000000 00497468 0251061C 0000000F 0000000F 00000000
0044304A 0019FAFC   0019FB0C 0040119D 00497945 00497328
0040119D 0019FB0C   0019FB38 00448F68 00000003 00000000 00507BF0 0000001B 00000000 00000000 00000000 00000036
00448F68 0019FB38   0019FC3C 0044304A 00000000 00507BF0 FFFFFFFF 02562584 0019FBB0 7DD02C24 0019FB64 6D101011
0044304A 0019FC3C   0019FC4C 0043CEE2 00497918 00497328
0043CEE2 0019FC4C   0019FC8C 004491E4 02562584 02562584 004E990C 004FF84C 0044906F 000003C9 00000000 00507BF0
004491E4 0019FC8C   0019FD90 00443106 00000001 02562284 004973E8 004E97CC 00000003 002C0000 77E5E766 77E4CDA7
00443106 0019FD90   0019FDA0 004065A0 004EE025 004E96FC
004065A0 0019FDA0   0019FDCC 0044906F 000001B0 00000000 00507BF0 00000001 00000000 00000000 00D70004 00500000
0044906F 0019FDCC   0019FED0 00443106 00000013 02562244 00000000 00497328 00000023 02530870 7578FD05 00000000
00443106 0019FED0   0019FEE0 00401185 0049778C 00497328
00401185 0019FEE0   0019FF0C 00448F68 007F3309 00000000 00000001 00000000 00000000 00000000 00000000 00000028
00448F68 0019FF0C   0019FF28 004422C2 00000000 007F3309 00000000 007F3309 00000000
004422C2 0019FF28   0019FF48 00454E58 00000001 00000000 004972B8 007F3309 00000000 0080AD50
00454E58 0019FF48   0019FF78 0048C4D3 00400000 00000000 007F3309 00000001 00401000 00401000 00348000 00348000
0048C4D3 0019FF78   0019FF94 00000000 004972B8 757862C4 00348000 757862A0 654067A2
00000000 0019FF94   0019FFDC 77E50FD9 00348000 673DE822 00000000 00000000 00348000 00000000 00000000 00000000

Called from OLEGETPROPERTY(0)
Called from HACERALINICIO(54) in INICIO.prg
Called from (b)MAIN(40) in INICIO.prg
Called from TWINDOW:ACTIVATE(0)
Called from MAIN(40) in INICIO.prg


Lo siguiente es la explicacion que da el creador de la libreria, en lo cual me base.

6.2.2.2. Delphi.
Para este entorno de trabajo existen varias formas de utilizar una librer铆a de clases. En el siguiente caso vamos a crear un acceso a la misma en forma din谩mica, desde el c贸digo. Recuerde que como estamos accediendo din谩micamente, puede que las funciones del objeto Controlador no aparezcan listadas, pero con la ayuda de este manual podr谩n disponer de la informaci贸n necesaria para una correcta utilizaci贸n de las funciones.
Codigo Delphi 7:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleServer, OleAuto;
var
Controlador: Variant;
begin
Controlador := CreateOLEObject('DataLinkLibrary.IController'); // NameSpace.ClassName
Controlador.Nuevo(); // o Controlador.Nuevo('DEMO');
end;

Gracias.
Jorge Jaurena

Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Objeto OLE
Posted: Wed May 24, 2017 07:00 PM

Antonio, desestima el msg anterior, me informaron que debia registrar la dll con la version 2 del RegAsm.exe, yo lo habia hecho con la version 4. Ya no da error.
Perdon por la molestia, gracias.

Jorge Jaurena

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Objeto OLE
Posted: Wed May 24, 2017 08:20 PM

muy bien

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Objeto OLE
Posted: Wed May 24, 2017 08:44 PM

Perdon, molesto de nuevo, no encuentro el ole.c como para guiarme en las funciones disponibles.
Donde podre conseguirlo?
Gracias

Jorge Jaurena

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Objeto OLE
Posted: Wed May 24, 2017 09:01 PM

Usas Harbour 贸 xharbour ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Objeto OLE
Posted: Thu May 25, 2017 01:51 PM

Harbour

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Objeto OLE
Posted: Fri May 26, 2017 05:02 AM

Jorge,

Prueba as铆:

Controlador:=CreateOLEObject('DataLinkLibrary.IController')
hSections := Controlador:Sections
Controlador:Nuevo = "DEMO"

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Objeto OLE
Posted: Fri May 26, 2017 05:06 AM

Revisa samples\testole.prg para ver las funciones disponibles

Si el c贸digo que te he indicado te funciona, entonces no necesitas usar esas funciones

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Objeto OLE
Posted: Fri May 26, 2017 06:40 PM

Hola Antonio.

Probando distintas funciones con tu sugerencia anterior me da siempre el mismo error.
Error description: Error BASE/1004 No exported method: CONECTARCONTROLADOR

Supongo que tendre que usar las funciones previstas para OLE.
Si utilizo esa forma funciona lo siguiente:

Controlador:=CreateOLEObject('DataLinkLibrary.IController')
hSections := OLEGetProperty(Controlador,"ConectarControlador")
OLESetProperty(Controlador,"Nuevo","DEMO")

Pero la siguiente linea ya da error
OLEInvoke(hSections, "ConectarControlador", "192.168.2.105")
El error es Application Exception.

El problema que tengo es que no se usar estas funciones y tampoco tengo el OLE.C como para orientarme, no se si hay otras funciones y no estoy seguro de usarlas correctamente.
Agradeceria la informacion que me puedas acercar.

Muchas gracias.

Jorge Jaurena

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Objeto OLE
Posted: Fri May 26, 2017 06:46 PM

Jorge,

Comprueba este valor y dime que te aparece:

Controlador:=CreateOLEObject('DataLinkLibrary.IController')
hSections := OLEGetProperty(Controlador,"ConectarControlador")
MsgInfo( hSections )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Objeto OLE
Posted: Fri May 26, 2017 06:58 PM

Nil

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Objeto OLE
Posted: Fri May 26, 2017 07:03 PM

Pues entonces no est谩 funcionando :-(

Te han proporcionado alg煤n ejemplo que funcione ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Objeto OLE
Posted: Fri May 26, 2017 07:07 PM

Es lo que sospechaba, me dieron un pdf, en el hay ejemplo de VB, Delphi y VFox pero no dice mucho, les pedi un ejemplo y me mandan a ver el pdf, si no te molesta te lo adjunto en un mail.