Fehlermeldung



  • bei mir tritt folgender Fehler auf:

    Program: D:\Name\2.Praxisphase\Name\Debug\name.exe
    File:C:\Src\Sdbctrl_70}Sdbctrl\Sdbstreamdataset.cpp
    Line:729

    Kann mir jemand sagen woran das liegt???

    Danke



  • Nein



  • @ sonnenschein

    genau das Gleiche war doch Gestern schonmal. Wie soll man euch helfen, wenn Ihr nichtmal euer Problem beschreibt !!



  • gestern war es ein anderes. Und das ist raus.

    hier mein Code:

    void auslesen()
    {
       /*ifstream is;
       is.open(filename);      //Datei zum lesen öffnen
    
          /*while (is.good())      //überprüfen ob für E/A-Funktionen geeignet
       {
          c = is.get();      //auslesen
          cout << c;endl;
       }*/
    
       //Auslesen
    
       //CSDBase *OpenSimplorerDataBase(LPCTSTR lpszName);
    
       virtual CSDBStreamDataSet::Load();               //Datei laden
       long CSDBStreamDataSet::GetNumberOfEntries();      //Anzahl der Stützstellen
    
       //Datei auslesen in einem Block
       CSDBase *pSDBase      = NULL;
       void *pdValues         = NULL;
    
       pSDBase               = OpenSimplorerDataBase(filename);
    
       CSDBStreamExp *pExp      = NULL;
       pExp               = pSDBase->OpenStreamExp();
    
       CSDBStreamRun *pRun      = pSDBase->OpenStreamRun(pExp->GetTableName());
       CSDBStreamAnalysis *pAna= pSDBase->OpenStreamAnalysis(pRun->GetTableName());
       CSDBStreamChannel *pChn = pSDBase->OpenStreamChannel(pAna->GetTableName());
       CSDBStreamDataSet *pVal = pSDBase->OpenStreamDataSet(pChn->GetTableName(),pChn->GetDataType(),pChn->CalcChannelValSize());
    
       double dAnzahlStuetzstellen=pVal->GetNumberOfEntries();   
       pdValues = new double[dAnzahlStuetzstellen];
    
       pSDBase->ReadDataSetBlock((void*)pdValues,pVal,STREAM_BLOCK_REDUCE,dAnzahlStuetzstellen);
    
       //BasisChannel bestimmen
       CString strBasisChannel;
       strBasisChannel = pAna->GetBaseChannelName();
    
    }
    
    //Main-Function
    void main()
    {
       int auswahl;
       cout<<"Filename: ";
       cin.get (filename,80);
       cout<<"Datei oeffnen......1"<<endl;
       cout<<"Datei schliessen...2"<<endl;
       cout<<"Datei auslesen.....3"<<endl;
       cout<<"Beenden............4"<<endl;
       cout<<"Ihre Auswahl:";
       cin>>auswahl;
    
       switch (auswahl)
       {
          case 1: open();break;
          case 2: close();break;
          case 3: auslesen();break;
          case 4: break;
          default: cout<<"Error"<<endl;
       }
    }
    

    Und wenn ich dann eine *.exe erstelle, kann ich noch den Filenamen eingeben, dann kann ich noch auf "Datei auslesen" gehen und dann bringt es mir den beschriebenen Fehler, was soll ich da mehr beschreiben??

    CODE TAGS BENUTZEN

    [ Dieser Beitrag wurde am 19.06.2003 um 08:23 Uhr von C-O-M-M-A-N-D-E-R editiert. ]



  • Mensch Jung, lern mal einen Debugger zu benutzen und nenn uns die Zeile, bei der der Absturz passiert!

    Dafür sind Debugger da!



  • mich haut es bei der Zeile raus:

    CSDBStreamDataSet *pVal = pSDBase->OpenStreamDataSet(pChn->GetTableName(),pChn->GetDataType(),pChn->CalcChannelValSize());

    und somit funktioniert nachfolgender Text auch nicht mehr



  • kann mir den niemand helfen??



  • Prüf doch einfach mal den Rückgabewert von OpenStreamChannel in der Zeile davor.



  • da kommt ja eine Speicheradresse zurück, also das funktioniert noch, nur irgendwie greift er dann nicht drauf zu 😕



  • Original erstellt von sonnenschein1984:
    da kommt ja eine Speicheradresse zurück, also das funktioniert noch,

    Hast du das mit dem Debugger geprüft? Wie lautet denn die zurückgegebene Adresse?



  • 0x01896630 das ist die Adresse, kannst du damit mehr anfangen???



  • Zeig uns mal die Zeile, in der er WIRKLICH abstürzt. Die Zeile, die du angibst ist ja nmur ein Funktionsaufruf ... Er stürzt aber in dieser Funktion ab, was man auch an der Fehlermeldung sehen kann. Poste also einfach mal die Zeile, die die Meldung angibt MIT CODETAGS!!!



  • Die Adresse sieht ganz gut aus. Wie lautet denn die genaue Fehlermeldung? In deinem ersten Beitrag hast die ja nur unvollständig angegeben.



  • Fehlermeldung:

    Debug Assertion Failed!
    Program:D:\Name\Ordner\debug\name.exe
    File: C:\Src\SdbCtrl_70\SdbCtrl\SdbStreamDataSet.cpp
    Line: 729

    Und dann kommt abbrechen, wiederholen und ignorieren!!!



  • Original erstellt von dEUs:
    Zeig uns mal die Zeile, in der er WIRKLICH abstürzt. Die Zeile, die du angibst ist ja nmur ein Funktionsaufruf ... Er stürzt aber in dieser Funktion ab, was man auch an der Fehlermeldung sehen kann. Poste also einfach mal die Zeile, die die Meldung angibt MIT CODETAGS!!!



  • Original erstellt von sonnenschein1984:
    Debug Assertion Failed!
    Program:D:\Name\Ordner\debug\name.exe
    File: C:\Src\SdbCtrl_70\SdbCtrl\SdbStreamDataSet.cpp
    Line: 729

    Ja dann zeig uns doch endlich mal den Code in dieser Zeile, am besten mit ein wenig Umfeld! Und Code-Tags!



  • void auslesen()
    {
    /*ifstream is;
    is.open(filename); //Datei zum lesen öffnen

    /while (is.good()) //überprüfen ob für E/A-Funktionen geeignet
    {
    c = is.get(); //auslesen
    cout << c;endl;
    }
    /

    //Auslesen

    //CSDBase *OpenSimplorerDataBase(LPCTSTR lpszName);

    virtual CSDBStreamDataSet::Load(); //Datei laden
    long CSDBStreamDataSet::GetNumberOfEntries(); //Anzahl der Stützstellen

    //Datei auslesen in einem Block
    CSDBase *pSDBase = NULL;
    void *pdValues = NULL;

    pSDBase = OpenSimplorerDataBase(filename);

    CSDBStreamExp *pExp = NULL;
    pExp = pSDBase->OpenStreamExp();

    CSDBStreamRun *pRun = pSDBase->OpenStreamRun(pExp->GetTableName());
    CSDBStreamAnalysis *pAna= pSDBase->OpenStreamAnalysis(pRun->GetTableName());
    CSDBStreamChannel *pChn = pSDBase->OpenStreamChannel(pAna->GetTableName());

    cout<<"pExp="; cout<<pExp<<endl;
    cout<<"pRun="; cout<<pRun<<endl;
    cout<<"pAna="; cout<<pAna<<endl;
    cout<<"pChn="; cout<<pChn<<endl;

    //BIS DAHIN GEHTS

    CSDBStreamDataSet *OpenStreamDataSet(LPCTSTR lpszStreamName,long lDataType = STREAM_CHN_DATATYPE_REAL, long lChannelValSize = 0, BOOL bCreate = FALSE );

    CSDBStreamDataSet *pVal = pSDBase->OpenStreamDataSet(pChn->GetTableName(),pChn->GetDataType(),pChn->CalcChannelValSize());

    double dAnzahlStuetzstellen=pVal->GetNumberOfEntries();
    pdValues = new double[dAnzahlStuetzstellen];

    pSDBase->ReadDataSetBlock((void*)pdValues,pVal,STREAM_BLOCK_REDUCE,dAnzahlStuetzstellen);

    //BasisChannel bestimmen
    CString strBasisChannel;
    strBasisChannel = pAna->GetBaseChannelName();

    }



  • Komisch, da steht nirgendwo ein assert oder etwas ähnliches 🙄

    Nochmal zum Mitschreiben:

    Diese Datei:
    File: C:\Src\SdbCtrl_70\SdbCtrl\SdbStreamDataSet.cpp

    Diese Zeile:
    Line: 729

    Und CODE-TAGS. Das kann doch nicht so schwierig sein!

    [ Dieser Beitrag wurde am 17.06.2003 um 13:49 Uhr von MFK editiert. ]



  • sonnenschein, es ist extrem unspassig dir zu helfen!!



  • Was spielt ihr hier für ein Spiel?

    Sieht lustig aus....

    Solange er keine richtigen Infos rausrückt würde ich den Thread komplett ignorieren..... und irgendwann kapiert er auch was CODETAGS sind, ganz sicher... bzw. was der blaue C++ CODE Button unter dem Antwortfeld macht... ich hab da noch Hoffnung, ehrlich.... irgendwann rafft auch er das...


Anmelden zum Antworten