Graphis::TBitmap in der Konsole ?
-
Guten Abend C++ Community,
ich hoffe ich bin hier in dem richtigen bereich gelandet auch wenn es viel mehr um eine Konsolen Anwendung als um VCL geht...
zu meinem Problem:
Ich versuche in einer Konsolen Anwendung (VCL angehakt) ein Bild in ein Graphics::TBitmap zu Laden.
Ich weis das selbiges nicht in der Konsole angezeigt werden kann und das soll es auch garnicht ich will
ein Bild nur nach bestimmten Pixeln auslesen wobei die Lage der Pixel bekannt ist.
Soweit so gut.mein problem ist es allerdings wenn ich mittels:
Graphics::TBitmap * Image = new Graphics::TBitmap;
das Bitmap erstelle und über
printf("\nGib bitte einen Pfad zur Datei an:"); String tmp; scanf ("%s", &tmp); if (FileExists(tmp)) Image->LoadFromFile(tmp);
das bild laden will wird mir nur ein Fehler angezeigt:
"Im Projekt XYZ.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung' aufgetreten."
und das bis dahin lauffähige Programm schmiert ab... kann mir wer sagen / erklären wo mein Fehler liegt ?
kann es sein das ich hierfür eine falsche Komponente nutze ???
bzw. gibt es hierfür überhaupt eine passende ???natürlich lässt sich das ganze auch in einer einfachen Form mit einem TImage lösen aber ich wil einfach mal wieder etwas
mit einer Konsolen- Anwendung machen.gruß,
Ich
-
Benutze bitte den Debugger und lies die Dokumentation zu scanf(), speziell, was genau scanf() tut, wenn du "%s" verwendest. Dann wird dir schnell klar, warum das falsch ist.
-
Hallo
Oder besser noch, du verwendest gleich statt den alten C-Funktionen die sicheren C++ Äquivalente cin/cout und std::string.
bis bald
akari