[eside-ghost] Duda de C... para palmos

Arkaitz arkaitzj en gmail.com
Sab Sep 9 14:39:00 CEST 2006


Aupa,
Me esta pasando una cosa muy extraña programando para palm, no se si
alguien tendra experiencia, pero como es c igual estoy metiendo la
gamba con otra cosa mas generica asi que voy a preguntar. :)
Mi codigo es este.
RecibirFichero(ExgSocketPtr exgSocketP){

        Err err;
        MemHandle dataH;
        UInt32 size;
        UInt32 TotalSize = 0;
        UInt32 ChunkSize=999;
        UInt32 *dataP;
        UInt32 len;
        UInt32 dataLen = 0;
        char mensaje[200];

        StrCopy(mensaje,"");

        TotalSize = exgSocketP->length;
        StrPrintF(mensaje,"Tamanio es = %i",TotalSize);
        alert(mensaje);
        StrPrintF(mensaje,"sizeof es = %i",sizeof(exgSocketP->length));
        alert(mensaje);

Pasa lo siguiente, si defino TotalSize como UInt16 va de pm, pero eso
solo va bien para tamaños de ficheros menores a 65Kb, el caso es que
debiera usar UInt32 porque se supone que exgSocketP apunta a una
estructura exgsockettype:
http://www.palmos.com/dev/support/docs/palmos/PalmOSReference/ExchangeManager.html#1054999
Ahi dice que length es un UInt32, sin embargo si uso ese valor siempre
recupero 0 de ese size, y si uso UInt16 con ficheros grandes me salen
tamanios negativos y la de cristo.
Sin embargo en los tutoriales estos que he encontrado, para enviar
pone en el exgsocket.length un valor de UInt32:
http://www.palmos.com/dev/support/docs/palmos/PalmOSCompanion2/ExchangeManagerConcept.html#996325
Y para recibir pone un valor de UInt16 para la misma variable¿?¿?¿?:
http://www.palmos.com/dev/support/docs/palmos/PalmOSCompanion2/ExchangeManagerConcept.html#996608

Es una locura de pm. He mirado las cabeceras que tengo para compilar y
efectivamente sale la estructura tal y como sale en el enlace, con un
length UInt32.

A alguien se le ocurre algo? o esta mal diseñado o algo?
Salutoj
-- 
Arkaitz


Más información sobre la lista de distribución eside-ghost