MPQ Archiv öffnet sich nicht // keine gültige Windows-Datei



  • Hallo, mein MPQ Archiv will sich einfach nicht öffnen, hier erstmal der Code:
    Aus der Klasse:

    BOOL CStorm::OpenArchive(LPCSTR FileName)
    {
    	if(SFileOpenArchive(FileName,0,0,&hMPQ))
    		return TRUE;
    	else
    		return FALSE;
    }
    

    Hier eine Beschreibung zur SFileOpenArchiv:

    BOOL WINAPI SFileOpenArchive(LPCSTR lpFileName, DWORD dwMPQID, DWORD dwUnknown, HANDLE *lphMPQ);

    lpFileName [in] A pointer to NULL terminated string that holds the path of the MPQ to open. SFileOpenArchive will crash if this is NULL.
    dwMPQID [in] An ID value that is saved internally in Storm for the MPQ. What this parameter is used for is not clear at this time.
    dwUnknown Unknown. Should always be NULL.
    lphMPQ [out] Pointer to a HANDLE variable that, upon successful completion, will hold the HANDLE of the MPQ. SFileOpenArchive will fail if this is NULL.

    ( http://www.campaigncreations.org/starcraft/inside_mopaq/chapter3.htm )

    Und so benutz ich das ganze:

    string W3xMPQPfad = "C:\\AToA.w3x"; //Ja die Datei existiert dort, ja sie ist ein MPQ Archiv
    
    W3xMPQ.Init(W3xMPQPfad.c_str());
    W3xMPQ.OpenArchive(W3xMPQPfad.c_str()); //-> hier ist der Fehler, genauer gesagt oben in der SFileOpenArchive
    

    Der Fehler:
    http://img152.imageshack.us/img152/4499/upbeatzm7.jpg

    Wenn ihr noch Informationen braucht, dann sagt bescheid!



  • Und was hat das mit WinAPI zu tun?



  • Ich dachte die Funktionen kommen aus der windows.h hm naja ich weiß auch nicht so recht wohin. Wäre nett wenns ins richtige Forum verschoben werden würde.



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum WinAPI in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • If SFileOpenArchive succeeds, its return value will be nonzero. But, there are several situations which may cause SFileOpenArchive to fail. If it does fail, it will return with a value of FALSE. In this situation, you can call GetLastError to get information about why it failed



  • So weit war ich auch schon, doch wenn ich die Funktion einbinde, dann wird mir nicht mehr angezeigt (oder verstehe ich den Sinn nur falsch? Denn das Programm kommt nicht mal bis zu der Errorfunktion, es wird vorher abgebrochen.). Es gibt das zwar noch was, eventuell hilft es: (das kam auch schon ohne die Error-Funktion)

    Eine Ausnahme (erste Chance) bei 0xcccccccc in Mv.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccccc.
    Unbehandelte Ausnahme bei 0xcccccccc in Mv.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccccc.
    Das Programm "[4004] Mv.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.



  • Ich hab n bissl erfahrung mit SFMPQapi. könnte dir vllt helfen, wenn du sourcecode zeigst. sonst schau dir code an, wo die sfmpq benutzt wird. gibt genug OSS tools auf diversen wc3, sc:bw seiten...



  • Problem gelöst, ich habe einfach die falsche Datei bei der Initialisierung der Storm.dll laden wollen.


Anmelden zum Antworten