id3lib: Zugriffsverletzung beim Lesen



  • Heyho liebe Programmierer und Programmiererinnen.

    Ich hab mich die letzten Tage mit beinahe ein und demselben Problem beschäftigt. Bei folgendem QC

    #include <iostream>
    #include <string>
    #include "splitter.h" // Eigener Header
    #include "id3tag.h" //Eigener Header
    
    #pragma comment (lib,"id3lib")
    
    int main()
    {
    	const char* p1 = "Eldorado";
    	ID3_Tag myTag("test.mp3");
    	ID3_Frame* myFrame;
    	ID3_Field* myField = NULL; 
    
    	if(myFrame = myTag.Find(ID3FID_TITLE, ID3FN_TEXT, "test"))
    	{
    		  char title[1024];
    		  myFrame->Field(ID3FN_TEXT).Get(title,1024);
    		  cout << "Title: " << title << endl;
    	}
    
    	else
    	{
    		myFrame->SetID(ID3FID_TITLE);
    		myField = myFrame->GetField(ID3FN_TEXT);
    		myField->Set(p1);
    
    	}
    
            return 0;
    }
    

    erhalte ich jedesmal folgenden Fehler:

    Unbehandelte Ausnahme bei 0x1000c290 in test.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000004.

    Sie bezieht sich auf die Zeile #33. Trotz langem googlen fand ich bisher keine Lösung für das Problem. Es ist eigentlich ziemlich genau dasselbe wie in der Documentation der id3lib beschrieben wird.

    Ich hoffe, ich habe keinen Thread übersehen, der genau das behandelt, habe die Suchfunktion benutzt 😉

    Vielen Dank jetzt schon 🤡


  • Mod

    Wenn in Zeile 23 das myframe 0 ist, dann landest du im else Block. Und dort dereferenzierst du diese 0.



  • Ahh, wie dumm von mir, manchmal sieht man eben den Wald vor lauter Bäume nicht.

    Vielen, vielen Dank! 👍


Anmelden zum Antworten