DLL - Probleme mit Visual Studio 2005

StonedMind

Mitglied
Hallo Leute,

ich versuche gerade mit C++ Datensätze aus einer MySQL Datenbank auszulesen (Konsole, kein MFC).
Wenn ich das Programm kompiliere, erscheint keine Fehlermeldung, d.h. Quelltext ist fehlerfrei.
Wenn ich es ausführe erscheint das Konsolenfenster, allerdings wird nichts ausgegeben, sonder es steht nur "Drücken Sie eine beliebige Taste..." da.
Als ich dann den Debugger starte, erscheinen folgende Fehlermeldungen

Code:
"test.exe": "G:\Andy\Programmierung_Entwicklung\test\debug\test.exe" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"test.exe": "C:\WINDOWS\system32\ntdll.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\kernel32.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\libmySQL.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"test.exe": "C:\WINDOWS\system32\wsock32.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\ws2_32.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\msvcrt.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\ws2help.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\advapi32.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\rpcrt4.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\mswsock.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\dnsapi.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\winrnr.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\wldap32.dll" geladen, Keine Symbole geladen.
"test.exe": "C:\WINDOWS\system32\rasadhlp.dll" geladen, Keine Symbole geladen.
Eine Ausnahme (erste Chance) bei 0x1000344a in test.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00130000.
Eine Ausnahme (erste Chance) bei 0x00000000 in test.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000.
.
.
.
Eine Ausnahme (erste Chance) bei 0x00000000 in test.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000.
Unbehandelte Ausnahme bei 0x00000000 in test.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000.
Das Programm "[4624] test.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.

Hab schon überall gesucht, allerdings nichts hilfreiches.
tutorial.de ist meine letzte Hoffnung. Bin euch für jede Hilfe dankbar.

MfG
Andy
 
Hallo, gehe doch mal mit dem Debugger schrittweise durch's Programm, um festzustellen, an welcher Stelle der Fehler auftritt.

Gruß
MCoder
 
Hallo, gehe doch mal mit dem Debugger schrittweise durch's Programm, um festzustellen, an welcher Stelle der Fehler auftritt.

Gruß
MCoder



fängt schon ganz oben an an folgender Stelle
Code:
#pragma comment (lib, "libmySQL.lib")

in dieser Zeile bleibt der Debugger stehn. vllt verwende ich die *.dll oder die *.lib falsch.
kann mir da vielleicht jemand weiterhelfen?
wie muss ich denn diese einbinden?
habe libmysql.dll in system32 und in den debugordner meines projekts eingefügt.
außerdem ist die libmysql.lib ebenfalls im debugordner meines projekts.
weiß vllt jemand weiter?
bin für jede hilfe dankbar

mfg
Andy
 
in dieser Zeile bleibt der Debugger stehn
Hmm, also das verstehe ich überhaupt nicht, denn #pragma ist eine Präprozessor-Anweisung. Das heisst, sie wird schon bei der Erstellung der EXE (Compiler, Linker) ausgewertet, ist also zur Laufzeit völlig irrelevant, weil damit keine Codeausführung verbunden ist. Der Debugger kommt niemals an diese Stelle.

Wie debuggst du denn? Setze doch mal einen Breakpoint an den Anfang der main()-Funktion.

Gruß
MCoder
 
Hmm, also das verstehe ich überhaupt nicht, denn #pragma ist eine Präprozessor-Anweisung. Das heisst, sie wird schon bei der Erstellung der EXE (Compiler, Linker) ausgewertet, ist also zur Laufzeit völlig irrelevant, weil damit keine Codeausführung verbunden ist. Der Debugger kommt niemals an diese Stelle.

Wie debuggst du denn? Setze doch mal einen Breakpoint an den Anfang der main()-Funktion.

Gruß
MCoder

Stimmt, du hast recht. Der Debugger arbeitet schon das ganze Programm ab. Allerdings wird in der Konsole nicht ausgegeben, obwohl ich einige cout-Befehle drin stehen hab.
Ich geh mal davon aus, dass der Fehler an den DLL's liegt, die mir in der Fehlermeldung angezeigt werden.
Allerdings weiß ich wie gesagt nicht, ob ich diese auch richtig verwende. Ich machs halt so wie ich es im oberen Beitrag beschrieben hab.
Allerdings weiß ich net weiter.

Wie kann ich dieses Problem lösen?
Bin für jede Hilfe dankbar
MfG
Andy
 
Hallo,

das eigentliche Problem sind die Zugriffsverletzungen. Also, wie schon gesagt, einen Breakpoint an den Anfang des Programmes setzen und schrittweise laufen lassen: Mit F5 bis zum Breakpoint und mit F10 dann Anweisung für Anweisung weiter. Damit kannst du gut kontrollieren, was das Programm macht und dir auch die Variableninhalte anzeigen lassen.

Gruß
MCoder
 
Hallo,

das eigentliche Problem sind die Zugriffsverletzungen. Also, wie schon gesagt, einen Breakpoint an den Anfang des Programmes setzen und schrittweise laufen lassen: Mit F5 bis zum Breakpoint und mit F10 dann Anweisung für Anweisung weiter. Damit kannst du gut kontrollieren, was das Programm macht und dir auch die Variableninhalte anzeigen lassen.

Gruß
MCoder

Hi,

das mit dem Debuggen klappt doch net so ganz:

1.) Nach dem ich den Debugger starte(F5) erscheint folgendes Fenster:

http://www.tutorials.de/forum/attachment.php?attachmentid=31448&stc=1&d=1182804540

Da bleibt mir nix anderes übrig, als auf "Ja" zu klicken, da der Debugger ja sonst beendet wird.

2.) Nachdem ich auf ja klicke kommt dieses Fenster:

http://www.tutorials.de/forum/attachment.php?attachmentid=31449&stc=1&d=1182804540

Jedes mal nachdem ich auf "Weiter" klicke kommt das gleiche Fenster nochmal.
Wenn ich auf "Unterbrechen" klicke wird der Debugger gestoppt(nicht beendet).

3.) Nachdem der Debugger gestoppt ist wollte ich noch folgendes zeigen (wegen Haltepunkt). Keine Ahnung was das zu bedeuten hat:

http://www.tutorials.de/forum/attachment.php?attachmentid=31450&stc=1&d=1182804540

Wie gesagt, bin euch echt für jede Hilfe dankbar.
MfG
Andy
 

Anhänge

  • forum1.jpg
    forum1.jpg
    38,1 KB · Aufrufe: 423
  • forum2.jpg
    forum2.jpg
    30,2 KB · Aufrufe: 294
  • forum3.jpg
    forum3.jpg
    128,3 KB · Aufrufe: 253
Hallo,

normalweise sollte es reichen, in der Projektmappenkonfiguration "Debug" als aktive Konfiguration einzustellen, damit das Programm mit Debuginformationen erstellt wird.
Was für einen Projekttyp hast du denn ursprünglich angelegt?

Gruß
MCoder
 
Hallo,

normalweise sollte es reichen, in der Projektmappenkonfiguration "Debug" als aktive Konfiguration einzustellen, damit das Programm mit Debuginformationen erstellt wird.
Was für einen Projekttyp hast du denn ursprünglich angelegt?

Gruß
MCoder

Hi,

Projektmappenkonfig. ist auf "Aktiv(Debug)" gesetzt und das Projekt ist ein leeres Projekt, in das ich dann eine *.cpp-Datei eingefügt habe.
Hab echt keine Ahnunng woran das liegen könnte.
MfG Andy
 
Hallo,

die Projekteinstellungen scheinen etwas verkorkst. Versuch's doch mal neu aufzusetzen; am besten vielleicht mal als "Win32-Konsolenanwendung".

Gruß
MCoder
 
Zurück