[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