Fehlermeldung



  • das war nicht der fehler, denn der Fehlercode kommt immer noch



  • was hast du denn jetzt geändert?



  • void readlist()
    {
    //Variablen festlegen
    CSDBase *pSDBase = NULL;
    CSDBStreamExp *pExp = NULL;

    CString filename;
    //BasisChannel bestimmen
    CString strBasisChannel;

    //Pointer
    void *pdVal;
    void *pBasisChn = NULL;
    void *pdBasisValue = NULL;
    void *pdValues = NULL;

    CSDBStreamDataSet *pVal;
    double dAnzahlStuetzstellen=pVal->GetNumberOfEntries();

    //BasisChannel bestimmen
    CSDBStreamRun *pRun = pSDBase->OpenStreamRun(pExp->GetTableName());
    CSDBStreamAnalysis *pAna = pSDBase->OpenStreamAnalysis(pRun->GetTableName());
    strBasisChannel = pAna->GetBaseChannelName();

    //auslesen der Daten in einem Block, mit einmal alle
    pSDBase->ReadDataSetBlock((void*)pdValues,pVal,STREAM_BLOCK_REDUCE,dAnzahlStuetzstellen);

    cout<<pSDBase;

    CloseSimplorerDataBase(pSDBase);
    }

    kannst du mir vielleicht sagen wie ich es sonst ändern soll!Das Programm soll aus einer *.sdb-Datei auslesen, diese ist ähnlich wie eine Excel-Tabelle aufgebaut!!!

    Danke



  • Les mal ein Tutorial über Zeiger. Du verwendest die ganze Zeit nicht- oder mit NULL initialisierte Zeiger!!!!



  • CSDBase *pSDBase = NULL;
    void *pdValues = NULL;
    CSDBStreamExp *pExp = NULL;

    pSDBase = OpenSimplorerDataBaseRO(filename);
    pExp = pSDBase->OpenStreamExp();

    CSDBStreamRun *pRun = pSDBase->OpenStreamRun(pExp->GetTableName());
    CSDBStreamAnalysis *pAna = pSDBase->OpenStreamAnalysis(pRun->GetTableName());
    // channel oeffnen
    CSDBStreamChannel *pChnLeft = pSDBase->OpenStreamChannel( pAna->GetTableName());
    CSDBStreamDataSet *pVal = pSDBase->OpenStreamDataSet(pChnLeft->GetTableName(),pChnLeft->GetDataType(),pChnLeft->CalcChannelValSize());

    double dAnzahlStuetzstellen=pVal->GetNumberOfEntries();
    //auslesen der Daten in einem Block, mit einmal alle
    pSDBase->ReadDataSetBlock((void*)pdValues,pVal,STREAM_BLOCK_REDUCE,dAnzahlStuetzstellen);

    cout<<pSDBase;

    Kommt immernoch ein Speicherfehler!!!! 😕



  • Bist du sicher, dass es an diesem Code liegt?



  • ja, weil ich ja nur den Code derzeit durchlaufen lasse



  • dann versuch mal die Zeile rauszufinden, in der er abstürzt.



  • Es kann sein, dass eine der Funktionen einen Nullzeiger zurückgibt, weil etwas schiefgegangen ist. Es wäre auch möglich, dass ReadDataSetBlock versucht, in den Speicher zu schreiben, auf den pdValues zeigt.



  • danke für eure Hilfe



  • Original erstellt von sonnenschein1984:
    danke für eure Hilfe

    Heisst das, dass es funktioniert? 😕


Anmelden zum Antworten