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

  • dqdb

    nagyúr

    válasz pmonitor #17807 üzenetére

    void search(wchar_t* sPath, wchar_t* sFileMask, FAJLKERESESEREDMENYE* pFke, char almappae, char mappae, char fajle)

    Ha már állandóan az optimalizáláson pörögsz, akkor hol vannak a const módosítók azon paraméterek elől, amelyek értékét nem módosítja a kód, és emiatt a compiler optimalizáláskor figyelembe tudja venni?

    wchar_t* sPath_1 = (wchar_t*)GlobalAlloc(LMEM_FIXED, (wcslen(sPath) + wcslen(sFileMask) + 1) * sizeof(wchar_t));

    Először is:

    Másodszor az első paraméterben szereplő LMEM_FIXED a LocalAlloc híváshoz tartozó konstans, itt a GMEM_FIXED konstanst kellene használni.

    if (sPath_1 == INVALID_HANDLE_VALUE) MessageBox(0, L"memória", L"Üzenet", 0);

    A dokumentáció alapján sikertelen foglalás esetében a GlobalAlloc visszatérési értéke NULL, míg az INVALID_HANDLE_VALUE értéke -1, szóval rossz a hibakezelésnél mind a feltétel, mind a kezelése, hiszen NULL pointerrel továbbengeded a futást.

    És itt abbahagytam, mert feleslegesnek éreztem folytatni. Az egy pillantásra látszik, hogy tele van a kód buffer overflow aknával.

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