Page 1 of 1

funcion __CLASSINS (??????)

PostPosted: Thu Dec 15, 2005 3:44 pm
by chuhuaca
Amigos del foro, estoy haciendo unas compilaciones con harbour, de unos prg para armar un exe. El tema es que en uno de mis prg tengo llamada una funcion que se llama __CLASSINS que me dice que no la encuentra, y la realidad es que no la encuentra porque no la tengo definida en ningun lado, ni lib, ni ch, ni nada.
Lo que quiero es saber si alguien tiene la definicion de esta funcion les pidi por favor que me la envien, porque en esa funcion reside que mi exe funcione correctamente.
Muchas gracias

Matias Camelli

PostPosted: Thu Dec 15, 2005 4:26 pm
by Antonio Linares
Matias,

Es una función interna de Clipper.

En Harbour/xharbour puedes reemplazarla por __CLSINST()

PostPosted: Thu Dec 15, 2005 9:33 pm
by chuhuaca
Antonio, hice lo que me sugeriste, y cambio el error en la siguiente linea con la siguiente pinta:

... en la linea donde reemplazo __CLASSINS() por la que me pasaste __CLSINST()


ERROR:
Objects.ch(34) E0001 Statement not allowed outside of procedureor function

Aca esta el codigo que tiene el Objects.ch de clipper que modifique con la sentencia que vos me pasaste.

#xcommand DEFAULT <uVar1> = <uDefaultValue1> ;
[, <uVarN> = <uDefaultValueN> ] => ;
<uVar1> = If( <uVar1> == nil, <uDefaultValue1>, <uVar1> ) ;;
[ <uVarN> = If( <uVarN> == nil, <uDefaultValueN>, <uVarN> );]

#xcommand CLASS <cClassName> [ FROM <cSuperNam1>] [ ,<cSuperNamN> ] => ;
function <cClassName>() ;;
static nClassHandle, abParents ;;
if nClassHandle == nil ;;
ClsNew( <"cClassName"> , ;
abParents := { [ { || <cSuperNam1>() } ] ;
[,{ || <cSuperNamN>() } ] } ) ;;
[#define PARENT <"cSuperNam1">]

#xcommand DATA <cVar> READONLY => ClsAddData( Upper( <"cVar"> ), 1 )

#xcommand DATA <cVar1> [,<cVarN>] => ;
ClsAddData( <"cVar1">, 0 ) ;
[; ClsAddData( <"cVarN">, 0 ) ]

#xcommand METHOD <cMethodName>( [<uParms,...>] ) => ;
ClsAddMethod( Upper( <"cMethodName"> ), ;
{ | Self [, <uParms> ] | <cMethodName>( Self [, <uParms> ] ) } )

#xcommand METHOD <cMethodName>( [<parms,...>] ) VIRTUAL => ;
ClsAddMethod( Upper( <"cMethodName"> ), { || nil } )

#xcommand ENDCLASS => ;
nClassHandle = nClsMake() ;;
end ;;
// return __ClassIns( nClassHandle )
return __ClsInst( nClassHandle )

#xtranslate :: => Self:

#xtranslate METHOD <cClassName>::<cMethodName>( [<uParms,...>] ) => ;
static function <cMethodName>( Self[, <uParms>] )

#xtranslate ::Parent:<method>([<uParms,...>]) => ;
Eval( bClsMethod( Upper( PARENT ), Upper( <"method"> ) ), ;
Self [,<uParms>] )

PostPosted: Thu Dec 15, 2005 9:53 pm
by Antonio Linares
Matias,

No tienes que modificar ningún fichero CH. Simplemente usa los que proporciona FWH y funcionará correctamente.

PostPosted: Thu Dec 15, 2005 10:38 pm
by chuhuaca
Antonio, te cuento que yo estoy usando Clipper 5.2, no tengo ninguna funcion de fwh (entiendo que es fivewin), por lo tanto te pido porfis, si las tienes a mano me las puedes mandar a mi correo o simplemente postearlas por aca que yo las copio.

PostPosted: Sat Dec 17, 2005 6:00 am
by Antonio Linares
Matias,

Clipper es un compilador de 16 bits y FiveWin para Harbour es un producto de 32 bits. No puedes usar Clipper para construir una aplicación para Harbour.

Asi mismo, no puedes usar Harbour (32 bits) con las librerías de FiveWin para Clipper (que son de 16 bits).

Necesitas usar Harbour y FWH (FiveWin para Harbour). FWH es un producto comercial que puedes comprar en www.fivetechsoft.com