dll debugen



  • Ich habe eine Dll gebaut und diese in ein anderes Projekt eingebunden, nur leider scheint die dll nicht das zu machen was ich will. Nun würde ich die gerne debugen weis aber nicht wie? Ich hab auch schon in der Hilfe geschaut aber nix gefunden.
    Dann habe ich bei der dll mein anderes Projekt welches die dll nutzt als startparameter angegeben aber der springt beim debugen einfach nicht in den Quellcode der dll? Die dll ansich scheint er aber zu finde, da keine Fehlermeldungen kommen und die Funktion auch eine Adresse hat.



  • Welchen BCB und welches Windows benutz du? Falls es BCB5 und WinXP sind hast du Pech. Aufgrund bestimmter Änderungen am DLL-Handling in XP funktioniert des Debuggen unter dort nicht mehr, und der BCB5 wird von Borland unter XP nicht unterstützt.

    Der BCB6 ist hingegen auf die XP-Änderungen angepasst.



  • hä? da war gerade ein beitrag von jansen 😕 😕 😕



  • Jo ich benutzte XP Home und BCB6.

    Ich habe jetzt auch mal bei dem Thread weiter unten den Link zur BCB Hilfe alles über die Dlls gelesen. Demnach müsste es doch korrekt sein so wie ich es mit dem startparameter probiert habe, oder?



  • Ich hab noch bissel rumprobiert und jetzt gehts doch plötzlich. Sorry für die Mühe aber das ist wieder ma typisch erst probiert man Stunden umsonst und nix geht und dann fragt man und plötzlich gehts doch.
    Nunja jetzt muss ich nur noch den Fehler finden.

    Kann es sein, das wenn ich einem ( char* irgendwas ) einer dll übergebe und darin was zuweise das man dann auserhalb der dll den Inhalt nicht verändert, das ist sie bei mir nämlich immer noch NULL. Ich dachte das ist nur ein Zeiger.



  • Meine Dll Funktion

    extern "C" __declspec(dllexport) void Laden(char* datei, char* pfad)
    {
    
      if (datei)
      {
        delete [] datei;
        datei = NULL;
      }
    
        int iFileHandle;
        int iFileLength;
    
          iFileHandle = FileOpen(pfad, fmOpenRead);
          iFileLength = FileSeek(iFileHandle,0,2);
    
          datei = new char[iFileLength+1];
    
          FileSeek(iFileHandle,0,0);
          FileRead(iFileHandle, datei, iFileLength);
          FileClose(iFileHandle);
    
    }
    //---------------------------------------------------------------------------
    

    Ich übergebe dann ein char* irgendwas = NULL; in der dll wird auch korrekt die datei gelesen und dort rein geschrieben aber wenn ich aus der dll zurückspringe habe ich im Programm wieder NULL.


Anmelden zum Antworten