DLL/Klassen/Funktionen



  • Hallo,

    Leute da ich ich ja ne Diskusion in die Welt gerufen !!!!

    Kann es sein das es ein Problem der Speicherverwaltung meiner DLL ist oder so.

    Gebe gerne mal das Projekt weiter bei Interesse!!! (es lebe open source) 🙂

    Da kann wer will mal die Klasse aus meinr im eigenen Projekt testen, ob das gleiche passiert !!!???!!!!

    Gruß
    IcemanX



  • Hallo,

    haben noch eine Person mit dem gleichen Prob. gefunden,

    siehe Beitrag ^16:13:27 18.11.2003 SilentSurfer^

    [url]http://www.c-plusplus.net/forum/viewtopic.php?t=55626&highlight=dll+klassen+delete
    [/url]

    dort steht aber auch keine Lösung!!!!!!!!!!! 😞


  • Mod

    Hallo

    kannst du dein Projekt online stellen
    (finden sich moeglicherweise einige die das dann checken)

    MfG
    Klaus





  • hat schon wer nen Anhaltspunkt 😕



  • kann ihm denn keiner helfen der ist bestimmt schon ganz frustriert 😉





  • Hallo,

    habe gerade von einem aufmerksamen User erfahren das viele gar keine *.rar Dateien öffnen können. Dachte eigentlich das sich RAR durch die grössere Leistung gegenüber ZIP schon mehr durchgesetzt hat ..... 🙄

    Vielen Dank an Hinterthuer Dieter für die Info 🙂

    Hier der Link im ZIP Format:

    http://www.cr-solutions.net/temp/crlib.zip



  • Hallo Hinterthuer Dieter,

    RAR haben wohl doch recht viele Leute,

    habe mal auf meinem Webserver die Zugriffe geprüft und musste feststellen
    das die *.rar bereits von 20 Leuten geladen wurde und die *.zip nur von 2 Leuten, wovon eine du sein wirst 😉

    Gruß
    IcemanX

    --------------------------------------------------------------------------
    ⚠ HATT EINER DER 22 LEUTE SCHON NEUIGKEITEN FÜR MICH 😋 ⚠



  • Bin einer der 22... habs nicht gerafft.

    Bleiben noch 21.



  • Plemplem schrieb:

    Bin einer der 22... habs nicht gerafft.

    Bleiben noch 21.

    Bekommst du auch nen Speicherzugriffsfehler beim delete oder was ??????

    Gruß
    IcemanX



  • Es wäre sicher hilfreich, wenn du neben dem reinen DLL-Code auch ein lauffähiges (Minimal)Projekt mitliefern würdest, in dem die DLL geladen bzw. Klassen/Funktionen daraus verwendet werden.



  • Jansen schrieb:

    Es wäre sicher hilfreich, wenn du neben dem reinen DLL-Code auch ein lauffähiges (Minimal)Projekt mitliefern würdest, in dem die DLL geladen bzw. Klassen/Funktionen daraus verwendet werden.

    Einfach ein neues Projekt mit einem Fenster und 3 Buttons indem
    CRLib.h und CRLib.lib eingebunden werden, dann noch im header folgenden Code:

    extern PACKAGE TCRVerInfo *pVersionInfo;
    extern PACKAGE TCRCPUInfo *pCUPInfo;
    

    ------------------------------------------------------------------------------

    Button1

    pVersionInfo = new TCRVerInfo(Application->ExeName);
      pCUPInfo = new TCRCPUInfo();
    

    Button2

    int iCPUUsage = pCUPInfo->getUsage();
    char szCPUUsage[10];
    strcpy(szCPUUsage, itoa(iCPUUsage, szCPUUsage, 10));
    MessageBox(NULL, szCPUUsage, "", MB_OK);
    
    // Dazu muss *.exe resource Daten besitzen!!!!!
    //String sProductname = pVersionInfo->GetVerInfo(VI_PRODUCT_NAME);
    //MessageBox(NULL, sProductname.c_str(), "", MB_OK);
    

    Button3

    //hier kommt der Fehler
    delete pVersionInfo;
    delete pCUPInfo;
    

    Gruß
    IcemanX



  • IcemanX schrieb:

    Fullqoute gelöscht.

    ---------------------------
    Fehler
    ---------------------------
    Programm 'S:\SOURCE\Cescon\C\Test\Memwatch\1.00.0000\Memwatch.exe' kann nicht gefunden werden.
    ---------------------------
    OK   
    ---------------------------
    

    Ich hab die Projektdatei geöffnen und F9 gedrückt... während dem Linken (oder schon beim Programmstart?) kommt die Meldung.(Ich sage doch, dass ich es nicht raffe! :p )

    Edit:
    Zitate bitte auf das Notwendigste beschränken. Danke!



  • Plemplem schrieb:

    Programm 'S:\SOURCE\Cescon\C\Test\Memwatch\1.00.0000\Memwatch.exe' kann nicht gefunden werden.

    einfach mal unter start parameter die host anwendung entfernen 🙂
    ich schließe daraus, das du auch noch nicht lang mit Borland C++ entwickelst

    Gruß
    IcemanX

    Edit:
    Zitate bitte auf das Notwendigste beschränken. Danke!



  • Das ist genau mein Punkt: wenn du möchtest, dass etwas für dich getestet wird dann solltest du das nach Möglichkeit so vorbereiten, dass andere es ohne Anpassungen an den eigenen Rechner ausprobieren können.
    Zum einen ist es für den Tester bequemer und damit die Wahrscheinlichkeit höher, dass sich jemand die Mühe macht, zum anderen werden eventuelle Unterschiede in der Konfiguration als mögliche Fehlerquelle ausgeschlossen.



  • Danke für den Tip,

    werde ich das nächste mal beachten!!!!! 😃



  • Hallo Leute,

    jetzt wird es kniffelig.

    Habe einen Anhaltspunkt zum problem gelesen.
    Es scheint als läge das Problem daran das der Speicher im Programm reserviert wird und die eingentliche Freigabe aber durch den Dekonstruktor erfolgt, der sich aber in der DLL befindet (logischer weise).

    Beispiel:

    pVersionInfo = new TCRVerInfo(Application->ExeName); // Speicher wird im Programm reserviert
    
    delete pVersionInfo; // Speicherfreigabe wird vom Programm aufgerufen
    
    ///////////////////////////////////////////////////////////////////////////
    
    // wirkliche freigabe scheint aber erst hier statt zu finden  :( 
    declspec_mode TCRVerInfo::~TCRVerInfo(){
      return; // hier kommt es zum Fehler :rage: 
    }
    

    Wie kann mann das umgehen, wie machen das ander Sprachen!!!!!!! 😕

    Irgend ein Speicher Profi anwesend ?????

    Gruß
    IcemanX



  • Du brauchst doch hier keinen Destruktor. Am besten ist es, du löschst das ganze Ding. Ein return im Destruktor ist sowieso Unsinn. Aber das hatte man dir schon gesagt.
    Ich glaube aber nicht das es am Destruktor (nicht "Dekonstruktor") liegt.
    Ich kann dein Projekt nicht selbst testen (ohne größeren Aufwand), da ich Builder 5 habe.



  • Braunstein schrieb:

    Fullquote gelöscht

    Habe den Destruktor auch schon mal weggelassen, bringt auch nichts 😞
    das muss irgendwas mit Speicher Anwendung zu DLL sein, wie ich breits geschrieben hab, oder klappt es bei deinen eigenen DLL´s mit Klassen????

    Gruß
    IcemanX

    Edit:
    Zitate bitte auf das Notwendigste beschränken. Danke!


Anmelden zum Antworten