Page 1 of 1

Error E2139 C:\FWH24\INCLUDE\clipapi.h 77: Declaration missi

Posted: Tue Oct 25, 2005 5:33 am
by goosfancito
Pueden ayudarme con esto, revise el codigo del clipapi.h y en esa linea dice esto:

typedef struct
{
WORD wType; <<<<<<<<<<<<<<<<<<<<< esta es la linea que dice 77
WORD w2;
WORD w3;
LPBYTE pPointer1;
LPBYTE pPointer2;
} CLIPVAR; // sizeof( CLIPVAR ) --> 14 bytes


Estoy tratando de hacer esto:

#include "winten.h"
#include "clipapi.h"
#include "windows.h"

HB_FUNC( misuma ) {
Int inum1 := hb_parni( 1 ) ;
Int inum2 := hb_parni( 2 ) ;

hb_retni( inum1 + inum2 ) ;

}


para luego llamarlo desde un prg de xharb


Gracias.

Re: Error E2139 C:\FWH24\INCLUDE\clipapi.h 77: Declaration m

Posted: Tue Oct 25, 2005 8:22 am
by Antonio Linares
Gustavo,
goosfancito wrote:Pueden ayudarme con esto, revise el codigo del clipapi.h y en esa linea dice esto:

typedef struct
{
WORD wType; <<<<<<<<<<<<<<<<<<<<< esta es la linea que dice 77
WORD w2;
WORD w3;
LPBYTE pPointer1;
LPBYTE pPointer2;
} CLIPVAR; // sizeof( CLIPVAR ) --> 14 bytes
Estás usando un clipapi.h antiguo, que no es el de FWH. Ya que esa definición de CLIPVAR es sólo para Clipper y no para FWH.
goosfancito wrote: Estoy tratando de hacer esto:

#include "winten.h"
#include "clipapi.h"
#include "windows.h"

HB_FUNC( misuma ) {
Int inum1 := hb_parni( 1 ) ;
Int inum2 := hb_parni( 2 ) ;

hb_retni( inum1 + inum2 ) ;

}
misuma tiene que ir en mayúsculas, es decir, MISUMA. Por otra parte, Int no comienza en mayúsculas, sin en minúsculas: int

Posted: Tue Oct 25, 2005 9:56 am
by jlcapel
Gustavo,

Prueba a poner este include en sustitución del clipapi.ch

#include "hbapi.h"

Saludos,
José Luis Capel
www.capelblog.com

Re: Error E2139 C:\FWH24\INCLUDE\clipapi.h 77: Declaration m

Posted: Tue Oct 25, 2005 4:33 pm
by goosfancito
Antonio:

dicho encabezado esta en el paquete original del FWH. No entiendo cuiando me decis que no se lo usa mas al clipapi.h
Gracias.

[quote="Antonio Linares"]Gustavo,

[quote="goosfancito"]Pueden ayudarme con esto, revise el codigo del clipapi.h y en esa linea dice esto:

typedef struct
{
WORD wType; <<<<<<<<<<<<<<<<<<<<< esta es la linea que dice 77
WORD w2;
WORD w3;
LPBYTE pPointer1;
LPBYTE pPointer2;
} CLIPVAR; // sizeof( CLIPVAR ) --> 14 bytes[/quote]

Estás usando un clipapi.h antiguo, que no es el de FWH. Ya que esa definición de CLIPVAR es sólo para Clipper y no para FWH.

[quote="goosfancito"]
Estoy tratando de hacer esto:

#include "winten.h"
#include "clipapi.h"
#include "windows.h"

HB_FUNC( misuma ) {
Int inum1 := hb_parni( 1 ) ;
Int inum2 := hb_parni( 2 ) ;

hb_retni( inum1 + inum2 ) ;

}
[/quote]

misuma tiene que ir en mayúsculas, es decir, MISUMA. Por otra parte, Int no comienza en mayúsculas, sin en minúsculas: int[/quote]

Gracias-

Posted: Tue Oct 25, 2005 5:52 pm
by goosfancito
[quote="jlcapel"]Gustavo,

Prueba a poner este include en sustitución del clipapi.ch

#include "hbapi.h"

Saludos,
José Luis Capel
www.capelblog.com[/quote]

Gracias José.

Quiero saber algo, que encabezados deben tener los codigos c para xHarbour a parte de este?

Muchas Gracias.

Posted: Tue Oct 25, 2005 6:21 pm
by Antonio Linares
Gustavo,

No he dicho que no se use clipapi.h, sino que tal vez estes usando uno antiguo.

Revisa tu ordenador y asegúrate de que no tienes otro clipapi.h por ahi.

Posted: Tue Oct 25, 2005 6:38 pm
by jlcapel
Gustavo,

Para hacer funciones C de (x)Harbour en principio solo necesitas el hbapi.h

Si quieres además utilizar el api de windows deberás añadir windows.h además de aquellos ficheros de cabecera que necesites.

Si quieres ver como se hace un wrapper de una función del API de windows sigue este enlace http://www.capelblog.com/?p=48

Saludos,
José Luis Capel
www.capelblog.com

Posted: Tue Oct 25, 2005 6:43 pm
by goosfancito
[quote="Antonio Linares"]Gustavo,

No he dicho que no se use clipapi.h, sino que tal vez estes usando uno antiguo.

Revisa tu ordenador y asegúrate de que no tienes otro clipapi.h por ahi.[/quote]

Antonio:

Solo tengo el fhw24 en mi computadora, ya he quitado el fw21 que tenia. y esa libreria esta dentro de fw24\include.

Gracias.

WRAPPER

Posted: Tue Oct 25, 2005 6:47 pm
by goosfancito
[quote="jlcapel"]Gustavo,

Para hacer funciones C de (x)Harbour en principio solo necesitas el hbapi.h

Si quieres además utilizar el api de windows deberás añadir windows.h además de aquellos ficheros de cabecera que necesites.

Si quieres ver como se hace un [i]wrapper[/i] de una función del API de windows sigue este enlace http://www.capelblog.com/?p=48

Saludos,
José Luis Capel
www.capelblog.com[/quote]

He estado buscando que son los WRAPPER pero todos lo utilzan pero no dicen que es- podrias darme una pequeña explicacion porque hasta en el msdn hablan del mismo pero no explican en si que es.

Gracias.

Posted: Wed Oct 26, 2005 1:47 pm
by jlcapel
Gustavo,

Un wrapper no es más que una función puente entre el nivel PRG de (x)harbour y una función C (que puede ser del API de Windows, de una DLL de un tercero, etc).

Para hacer un wrapper has de tener un mínimo conocimiento de C y documentación de la función que vas a wrapear.

En http://www.capelblog.com/?p=48 hay un artículo donde hay dos wrappers a dos funciones del API de Windows. Míratelo y haz pruebas con alguna otra función del API de Windows.

Saludos,
José Luis Capel
www.capelblog.com

Mira vos lo que se aprende

Posted: Wed Oct 26, 2005 5:15 pm
by goosfancito
O sea que lo que estoy tratando de hacer es un WRAPPER, estoy tratando hace un tiempo crear, conectar y manipular pipes. por medio de funciones mias y utilizando API. Bueno siempre y cuando el xHarbour me lo deje.

Gracias Soberano.

[quote="jlcapel"]Gustavo,

Un [i]wrapper[/i] no es más que una función puente entre el nivel PRG de (x)harbour y una función C (que puede ser del API de Windows, de una DLL de un tercero, etc).

Para hacer un [i]wrapper[/i] has de tener un mínimo conocimiento de C y documentación de la función que vas a [i]wrapear[/i].

En http://www.capelblog.com/?p=48 hay un artículo donde hay dos wrappers a dos funciones del API de Windows. Míratelo y haz pruebas con alguna otra función del API de Windows.

Saludos,
José Luis Capel
www.capelblog.com[/quote]