Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Errores al pasar a lazarus 1.0 (https://www.clubdelphi.com/foros/showthread.php?t=81049)

pedrolazarus 05-10-2012 01:59:39

Errores al pasar a lazarus 1.0
 
Instale la nueva version de lazarus pero al tratar de instalar zeos me tira el siguiente error

Código:

C:\lazarus\components\ZEOSDBO-6.6.6-stable\src\core\ZClasses.pas(84,22) Error: No matching implementation for interface method "IUnknown.QueryInterface(constref TGuid,out <Formal type>):LongInt; StdCall;" found

Aqui

TContainedObject = class(TAggregatedObject, IInterface)
  protected
    function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
  end;

A que se debe

beginner01 05-10-2012 03:52:42

Cita:

Empezado por pedrolazarus (Mensaje 446405)
Instale la nueva version de lazarus pero al tratar de instalar zeos me tira el siguiente error

Código:

C:\lazarus\components\ZEOSDBO-6.6.6-stable\src\core\ZClasses.pas(84,22) Error: No matching implementation for interface method "IUnknown.QueryInterface(constref TGuid,out <Formal type>):LongInt; StdCall;" found

Aqui

TContainedObject = class(TAggregatedObject, IInterface)
  protected
    function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
  end;

A que se debe


Hola.

El error quiere decir que la implementación del método "QueryInterface" debe ser idéntica a la declaración en la interfaz IUnknown. Si te fijas en la interfaz está declarada como.

Código Delphi [-]
Unknown.QueryInterface(constref TGuid,out type>):LongInt; StdCall

y en la implementación está.
Código Delphi [-]
    function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;

así que en la implemantación debe ser suficiente con cambiar const por constref

pedrolazarus 05-10-2012 05:35:03

Cita:

Empezado por beginner01 (Mensaje 446412)
Hola.

así que en la implemantación debe ser suficiente con cambiar const por constref

Gracias por la respuesta, si funciono pero ahora me tira el siguiente error

C:\lazarus\components\ZEOSDBO-6.6.6-stable\src\component\ZAbstractRODataset.pas(3116,48) Error: Expected another 2 array elements

{$IFDEF FPC}
const
BaseFieldTypes: array[TFieldType] of TFieldType = (
ftUnknown, ftString, ftInteger, ftInteger, ftInteger, ftBoolean, ftFloat,
ftFloat, ftBCD, ftDateTime, ftDateTime, ftDateTime, ftBytes, ftVarBytes,
ftInteger, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftBlob, ftUnknown,
ftString, ftString, ftLargeInt, ftADT, ftArray, ftReference, ftDataSet,
ftBlob, ftBlob, ftVariant, ftInterface, ftInterface, ftString, ftTimeStamp, ftFMTBcd
{$IFDEF FPC2_1UP}, ftString, ftBlob{$ENDIF});//aqui

{$ELSE}

pedrolazarus 05-10-2012 05:57:10

Listo
 
Ya resolvi el problema.

1ero
habia que buscar en google:D:p
2do
Colocar estas lineas modificando el archivo zeos.inc que se encuentra en la carpeta scr que aparece luego de descomprimir el paquete que se descarga para instalar.
Código:

{$DEFINE FPC2_5UP}
  {$DEFINE FPC2_4UP}
  {$DEFINE FPC2_3UP}
  {$DEFINE FPC2_2UP}
  {$DEFINE FPC2_1UP}
  {$DEFINE FPC2_UP}
//linea de separacion (este comentario lo borran)

y luego estas dos lineas que ya se encuentran en el archivo zeos.inc por lo tanto no
se colocan si no que van como referencia (no le digan a nadie...yo las coloque y casi q hago otra pregunta)

//antes de estas se coloca lo de arriba
{$IFDEF VER2_5}
{$DEFINE FPC2_5UP}

Pagina donde esta la informacion http://wiki.freepascal.org/Zeos_tutorial/es



La franja horaria es GMT +2. Ahora son las 06:27:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi