ZLIB dekomprimieren

Ich habe eine kleine Anwendung programmiert, die im gzip / deflate-Format codierte Daten dekomprimieren soll.

Um dies zu erreichen, verwende ich die ZLIB-Bibliothek mit der Dekomprimierungsfunktion.

Das Problem ist, dass die Funktion nicht funktioniert! In anderen Worten, Daten sind nicht unkomprimiert!

Ich poste hier den Code:

int (*decompress)(PBYTE,PULONG,PBYTE,ULONG);

void DecodeData(PBYTE data,ULONG dataSize){
  LoadLibrary("C:\\zlib1.dll");

  decompress=(int(*)(PBYTE,PULONG,PBYTE,ULONG))GetProcAddress(
    GetModuleHandle("zlib1.dll"),"uncompress");

  // Yeah I know the size is hardcoded and it's not right, but it's just a test,
  // so nevermind

  PBYTE decompressedData=(PBYTE)VirtualAlloc(NULL,300,MEM_COMMIT|MEM_RESERVE,
    PAGE_EXECUTE_READWRITE);
  ULONG maxSize=250;

  decompress(decompressedData,&maxSize,data,dataSize);

  MessageBox(0,(char*)decompressedData,0,MB_OK);//MessageBox shows no data, it's blank!
}

Der Zeiger auf die Funktion wird erfolgreich von GetProcAddress abgerufen. Das Problem besteht darin, dass die Funktion NULL zurückgibt (und nicht einmal die in der zlib-Dokumentation aufgeführten Fehler).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage