Új hozzászólás Aktív témák

  • aviator

    tag

    Sziasztok,

    Egy Win32-es projekt jelentős részét kellene átlátnom, megértenem, majd utána a saját igényeimnek megfelelően bővíteni. Jelenleg ott tartok a dologgal, hogy van egy exe fájlom, és megvan hozzá a forráskód. Az exe fájl szépen lefut ahogy kell, viszont ha a forráskódját beillesztem az editorba és megpróbálom futtatni, akkor elindul ugyan, de egy, a forráskódban definiált hibaüzenetet kapok. Visszafejtve arra jutottam, hogy a hibaüzenetet azért kapom mert nem tud lefutni a CreateFilemapping függvény.

    A kódrészlet:

    #define MAX_SIZE 0x7F00 // Largest data (kept below 32k to avoid
          // any possible 16-bit sign problems)

    // create the file-mapping object
     m_hMap = CreateFileMapping(
         (HANDLE)0xFFFFFFFF, // use system paging file
         NULL,               // security
         PAGE_READWRITE,     // protection
         0, MAX_SIZE+256,       // size
         szName);            // name
     if ((m_hMap == 0) || (GetLastError() == ERROR_ALREADY_EXISTS))
     { *pdwResult = FSUIPC_ERR_MAP;
      FSUIPC_Close();
      return FALSE;
     }

    Az if-ben az első feltétel teljesül, tehát az m_hMap értéke marad a kezdeti nulla, azaz nem kap értéket a függvénytől, ezért íródik be az if-en belül a *pdwResult címre a hibaüzenet. Hiba nincs, a GetLastError() nullát ad vissza, ezt ellenőriztem.
    Az egész kódrészlet egy másik függvény része, ezért van return FALSE a végén.

    A kérdés, hogy mi lehet az oka annak, hogy nem fut le a CreateFileMapping függvény?

    Igazából most van dolgom először Win32-es programmal, a butaságok állításáért, kérdezéséért előre is elnézést.

    Köszönöm a segítséget. :R

Új hozzászólás Aktív témák