Ergebnis 1 bis 3 von 3
  1. #1
    Trojaner Avatar von luxury11
    Registriert seit
    30.05.2010
    Beiträge
    56

    Standard Dynamic API (help)

    Versuche SHGetSpecialFolderA zu laden.
    Doch GetModuleFileNameA() gibt bei "Shell32.dll" nicht die Addresse,
    sonder Fehler -> NULL. Habe das schon für CopyFileA geschrieben, bei dem alles funktioniert hat.

    Code:
    #include <Windows.h> 
    #include <ShlObj.h> 
     
    typedef 
    BOOL SHGetSpecialFolderPath_t( 
             HWND hwndOwner, 
      __out  LPSTR lpszPath, 
      __in   int csidl, 
      __in   BOOL fCreate 
      /* Shell32.dll  
         TRUE if successful; otherwise, FALSE. 
      */ 
    ); 
     
     
    bool dynamic_SHGetSpecialFolderPath(char* cPath) 
    { 
        HMODULE h_Load; 
        SHGetSpecialFolderPath_t* mySHGetSpecialFolderPath = 0; 
        h_Load = GetModuleHandleA((LPCTSTR)"Shell32.dll"); //<--- 
        if (h_Load == false) 
        { 
            MessageBoxA(NULL,"failed","lol",0); 
            return false; 
        } 
        *(FARPROC*)&mySHGetSpecialFolderPath = GetProcAddress(h_Load,  (LPCSTR)"SHGetSpecialFolderPathA"); 
         mySHGetSpecialFolderPath(NULL,(LPSTR)cPath,CSIDL_APPDATA|CSIDL_FLAG_CREATE,0); 
        return true; 
    }

  2. #2
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Versuch's mal mit LoadLibrary (bzw. LoadLibraryA)
    GetModuleHandle gibt nur Handles von bereits geladenen Modulen zurück - also NULL, wenn shell32.dll nicht schon geladen wurde.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  3. #3
    Trojaner Avatar von luxury11
    Registriert seit
    30.05.2010
    Beiträge
    56

    Standard

    Funktioniert nun einwandfrei mit LoadLibraryA().

    Um keine Pfad für die DLL anzugeben kann ich auch den aliasnamen nehmen.
    Den man unter
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\KnownDLLs finden kann. Siehe MSDN-Dynamic-Link Library Redirection

Ähnliche Themen

  1. Dynamic HTML Editor
    Von gummi111 im Forum Anwendungssoftware
    Antworten: 8
    Letzter Beitrag: 13.06.2009, 12:21

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •