experiment mit FindNextUrlCacheEntry



  • Hallo schon wieder!

    Ich bin grade am experimentieren mit der WinApi Funktion FindNextUrlCacheEntry. Kompilieren tut er meinen Source Code

    #include <vcl.h>
    #include <stdio.h >
    #include <wininet.h>
    #pragma hdrstop
    
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
           char buffer[4096];
    DWORD cb = 4096;
    INTERNET_CACHE_ENTRY_INFO *p = (INTERNET_CACHE_ENTRY_INFO *)buffer;
    HANDLE h = FindFirstUrlCacheEntry(NULL, p, &cb);
    while (h)
    {
        // Do something with it...
        printf("Deleting: %s...", p->lpszSourceUrlName);
        if (!DeleteUrlCacheEntry(p->lpszSourceUrlName))
        {
            printf("failed, 0x%x\n", GetLastError());
        }
        else
            printf("ok\n");
    
        cb = 4096;
        if (!FindNextUrlCacheEntry(h, (INTERNET_CACHE_ENTRY_INFO *)buffer, &cb))
            break;
    }
    
    }
    //---------------------------------------------------------------------------
    

    auch ganz gut nur der Linker meldet dann folgenden Fehler:

    [Linker Error] Unresolved external 'FindFirstUrlCacheEntryA' referenced from F:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ
    [Linker Error] Unresolved external 'DeleteUrlCacheEntry' referenced from F:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ
    [Linker Error] Unresolved external 'FindNextUrlCacheEntryA' referenced from F:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ

    Finde ich irgendwie echt komisch.

    Wisst Ihr vielleicht woran es liegt?

    Gruß

    ratfury



  • Du mußt noch gegen die Wininet.lib linken!



  • Oh man, was für ein simpler Fehler! Danke!!



  • Hallo Frank,

    habe das gleiche Problem; verstehe leider den Satz und Sinn nicht:

    "gegen wininet.lib linken" 😕

    Was muss man genau machen?

    Danke im voraus für die Antwort 🙂

    Gruß Stefan



  • Stefan71242 schrieb:

    Was muss man genau machen?

    ...das hängt von der eingesetzten IDE (bzw. Compiler/Linker) ab

    Generell:
    In der msdn bei der eingesetzten Funktion nachschauen welche Library gelinkt werden muss (steht dort immer unten bei "Library") und dann dem Linker irgendwie mitteilen, dass er diese verwenden soll.
    In VS geht das z.B. über die Projekteigenschaften irgendwo oder über:

    #pragma comment(lib, "NameDerLibrary")
    

Anmelden zum Antworten