Problem mit einer MFC DLL



  • Hallo zusammen,
    ich habe mir eine DLL Datei erstellt die mir Daten in eine Datenbank einträgt.
    Wenn ich die Headerdatei nun einbinde und das Programm kompiliere funktioniert dies auch ohne probleme. Sobald ich aber nun ein Objekt von der Klasse in der DLL Datei erstelle stürzt mir das ganze Programm ab. Hat jemand vielleicht ne ahnung an was dies liegen könnte???
    Es reicht zum Beispiel schon solch ein Eintrag:

    Controller m_db;
    


  • "Stürzt ab" ist als Fehlerbeschreibung nur minimal besser als "Funktioniert nicht". Was sagt denn der Debugger?



  • Also, sobald ich das Programm als Release Kompilieren kommen folgende Fehlermeldungen:

    DATABASE.DLL Initializing!
    Nicht abgefangene Ausnahme in Adressbuch.exe (NTDLL.DLL): 0xC0000005: Access Violation.
    Nicht abgefangene Ausnahme in Adressbuch.exe (NTDLL.DLL): 0xC0000005: Access Violation.
    Nicht abgefangene Ausnahme in Adressbuch.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.

    Als Debug komm ich wenigstens in Programm, was bei der Release schon gar nicht funktioniert.

    HEAP[Adressbuch.exe]: Heap block at 00354C90 modified at 00354D48 past requested size of b0



  • OK, hab jetzt nochmals seit heut morgen versucht und finde den Fehler nicht.
    Sobald ich anfange die DLL Datei einzubinden knallt es.
    Hier mal der Quellcode...
    http://www.dvdoffice.de.vu/adressbuch/adressbuch.rar



  • guenni81 schrieb:

    Nicht abgefangene Ausnahme in Adressbuch.exe (NTDLL.DLL): 0xC0000005: Access Violation.
    Nicht abgefangene Ausnahme in Adressbuch.exe (NTDLL.DLL): 0xC0000005: Access Violation.
    Nicht abgefangene Ausnahme in Adressbuch.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.

    Versuch doch mal die Fehler abzufangen per try-catch. Den Fehler kannst du dir ja dann per ReportError() ausgeben lassen.



  • Hab ich schon versucht. Dummerweise startet die Anwendung mitlehrweile nicht mehr und bringt nur noch eine Fehlermeldung.
    Da der Fehler nur auftritt sobald die DLL in das Programm eingebunden wird vermute ich mal das ich in dieser irgendein Fehler drin habe.
    Jetzt ist nur noch die Frage, welcher...



  • Ich habe den Fehler nach langem suchen endlich gefunden.
    Ich hatte die zu benutzende Controller Headerdatei abgeändert das nur die public Methoden noch drin standen. Das hat den Fehler verursacht.
    Dachte immer das würde nix ausmachen wenn man die private Variablen, etc. raus löscht, war dann aber mal nicht so...
    Das heißt natürlich auch das ich das ganze was als interface gedacht war in die tonne kicken kann, bzw. die Funktionen/Klasse dynamisch mit LoadLibary laden muss


Anmelden zum Antworten