Favicon Svethardware.cz  Svět hardware   Fórum Favicon Svetaudia.cz  Svět audia Favicon TVFreak.cz  TV Freak   Fórum Favicon Digimanie.cz  Digimanie   Fórum   Galerie Společnost oXy Online s.r.o.
Zobrazené výsledky: 1 až 2 z 2

Téma: problem so zapisom vicebytoveho prvku do void* data

  1. #1
    Nováček
    Registrace
    Sep 2006
    Příspěvků
    1

    Zdravim
    Mam dost velky problem..a to hlavne kvoli tomu ze nasledujuci kod bez problemov funguje pod emulatorom PocketPC 2003 a tak isto aj pod obycajnym PC lebo je to klasicky C/C++ , skor C kod a pod mojim LOOXom s Windows Mobile 5.1.195 neche ist co sa cudujem..

    Mam definovanu globalnu premennu
    void *data=VirtualAlloc(NULL,120,MEM_COMMIT,PAGE_READWR ITE);

    dalej mam Funkciu
    void * GetData(int offset)
    {
    return (byte*)data+offset;
    }

    dalej..
    void SetDouble(double value)
    {
    void *ptr=GetData(50);
    *(double*)ptr=value; /*-a tu nastava problem(a problem has occured with
    gwes.exe..),vid dalej*/
    }

    Problem je vtom ze vo fcii GetData vracia data pretypovane na byte a dalej vo fcii SetDouble snazi ulozit hodnotu typu double o velkosti 8 bajtov ale neide to..Ide to ale ak ukladam hodnotu typu byte a nie double..

    Ako som spominal v Emulatore a PC to jde bez problemov..Ja mam taky kod dany..pouzivam ho aplikacne..take fukcie ako SetDouble dokazem zmenit rozkuskovanim value na byty a po bytoch ho potom ulozit ale mam vela funkcii kde sa naraba s objektami a tam mi to az tak jasne nieje ale problem je podobny..je toho moc a najlepsie by bolo to co najmenej zmenit..
    ak mate nejake riesenie alebo aj dotaz budem vdacny za vsetko co napisete pretoze som dost premna bezradnej sitaucii.
    Dakujem
    Este by ma zaujimalo kolko existuje pre PocketPC architektur kde by bola potencialna moznost vzniku podobneho problemu ze by som musel specialne upravovat kod. Kolko by som mal takychto releasov vytvorit???

    Odpovídat lze po přihlášení

  2. #2
    Starousedlík SMob
    Registrace
    Jan 2004
    Příspěvků
    2,017

    Priznam se, ze tento "C" old school styl me trochu desi A myslim si, ze tento kod moc safe neni...

    U me na zarizeni i na emulatoru vas kod take spadne.

    Nez zacneme resit dalsi veci, zustanme u prasaren - zkusil jste reinterpret_cast? Mne projde...

    void SetDouble(double value)
    {
    void *ptr=GetData(50);
    byte* val2 = reinterpret_cast<byte*> (&value);
    *(byte *) ptr = *val2;
    }
    Odpovídat lze po přihlášení



Podobná témata

  1. Plomba VOID
    Od R@!s3r v sekci Touch HD
    Reakcí: 1
    Poslední příspěvek: 20-11-2009, 20:02
  2. Ovládání prvku z jiného formu
    Od tane v sekci Programování
    Reakcí: 2
    Poslední příspěvek: 02-06-2007, 22:52
  3. Problém s A-DATA MMC 4GB
    Od blitzer_ce4you v sekci + Soubory & Paměťová média
    Reakcí: 17
    Poslední příspěvek: 02-04-2007, 12:18
  4. Leo's void - hvězdičky na PDA
    Od zsadek v sekci Programy pro Pocket PC
    Reakcí: 4
    Poslední příspěvek: 08-07-2005, 11:43