OutputDebugString(_T()); wofür ist das?



  • Hallo, ich bin totaler C++ neuling und arbeite mich gerade durch einige Übungen durch und da komm ich gerade nicht weiter.
    Hier steht:

    Die Standardausgabe der Programme ist das Terminal-Fenster. Über den
    Befehl
    OutputDebugString(_T("\nDebug-Ausgabe in Ausgabe-Fenster\n"));
    kann man auch in das Ausgabe-Fenster des Visual Studios schreiben. Probieren
    Sie das aus.
    • Was passiert, wenn Sie das Makro _T( ) weglassen?
    • Stellen Sie in den Projekteigenschaften unter Allgemein den Zeichensatz
    auf „Nicht festgelegt“.
    • Was ist Unicode und was bedeutet das für TCHAR?

    Das versteh ich komplett nicht!
    Ich weiß nicht mal wo ich das Output-Dings hinschreibe... bei mir kommt immer nur ne Fehlermeldung und das schwaze Fenster kommt gar nicht erst :S





  • is' das normal, dass man sich in dem Forum hier verarschen lassen muss?
    Wenn ihr Bock habt könnt ihr es ja ins "Wie google ich das - Forum" umbenennen, dann weiß man wenigstens woran man is' und dass man keine Erklärungen erwarten muss.

    Danke!



  • 3 perfekte antworten...
    was ist daran verarschen? Oo



  • Jatoll schrieb:

    is' das normal, dass man sich in dem Forum hier verarschen lassen muss?

    Siehs umgekehrt: Die Helfer wollen sich auch nicht bei den Fragen verarscht fühlen. Wenn irgendwas trivial mit einer google suche lösbar ist, dann kann der Eindruck ganz schnell entstehen.

    Stimmts?

    Ohh und zum Thema: geh deine Unterlagen durch und schau, wo man solche Ausgabezeilen am Besten hinschreiben muss. Wenn da snicht klappt, dann zeigst du uns code. Dann helfen wir dir, indem wir dir sagen was du falsch gemacht hast. dann versucht du den Rest der Aufgabe zu lösen. Wnen das nicht klappt, googelst du. Wenn das nicht klappt, fragst du erneut hier, indem du uns deinen Code postest.



  • Also ich find seinen Namensvorschlag gar nicht schlecht. Läßt sich dann auch leichter googlen das Forum.



  • Jatoll schrieb:

    is' das normal, dass man sich in dem Forum hier verarschen lassen muss?

    Nein aber es ist normal dass sich Neulinge nicht um allgemeine Netiquette scheren und so selbstverständliche Dinge auslassen, wie sich erstmal umzuschauen und die mit wichtig markierten beiträge zu lesen (die sind tatsächlich wichtig!)
    Hättest du das getan dann wüsstest du, dass hier Eigeninitiative und nachgoogeln erwartet wird, siehe auch Link in meiner Signatur (einer der wichtigen Beiträge).



  • wenn man nicht weiß was man googlen soll ist das schwer
    würde ich mich extra anmelden wenn ichs mal schnell bei google finden würde?
    macht keinen sinn oder?
    ich habs jetzt mehrmals selber versucht und hab die code zeile hin und her geschoben, mal in die main und mal davor usw. aber geht nicht.
    Hab jetzt gesehen, dass an der aufgabenstellung ein kleiner totenkopf abgebildet ist. vielleicht ist das gar nicht lösbar?
    mir wurde gesagt, dass das _T() in
    OutputDebugString(_T("\nDebug-Ausgabe in Ausgabe-Fenster\n"));
    ein Makro sei, das ich vorher hätte anlegen müssen oder so



  • Okay, solltest noch einmal in eine Klasse in der das Lesen gelehrt wird.

    Erster Link bei Google zum Thema _T:

    _T is a macro to make a strings "character set neutral".
    For example _T("HELLO");

    Characters can either be denoted by 8 bit ANSI standards or the 16 bit Unicode notation.

    If you define _T for all strings and define a preprocessor symbol "_UNICODE", all such strings will be will follow UNICODE encoding. If you don’t define _UNICODE, the strings will all be ANSI.
    Hence the macro _T allows you to have all strings as UNICODE or ANSI.

    Die anderen spare ich mir nachzugucken weil ich wette das es genauso simpel geht. 😉



  • Jatoll schrieb:

    ich habs jetzt mehrmals selber versucht und hab die code zeile hin und her geschoben, mal in die main und mal davor usw. aber geht nicht.

    Mit learning by guessing bist du in der Informatik definitiv falsch. Mach was anderes.



  • Jatoll schrieb:

    ich habs jetzt mehrmals selber versucht und hab die code zeile hin und her geschoben, mal in die main und mal davor usw. aber geht nicht.

    In die Main war schonmal richtig. Hast du gelesen, was der Compiler als Fehler angibt? Diese Meldungen sind schon ziemlich wichtig, wenn etwas nicht funktioniert...



  • also
    ich geb dir mal en antwort, weil es ist anfangs echt nicht leicht sich in der msdn oder ähnlichem zurechzufinden, und googlen is auch nicht einfach meistens am anfang.

    also
    es gibt ja unicode und ascii zeichensätze (das sehe ich als gegeben an, das kann man bei wikipedia nachgucken was das ist), normale editoren 8oder ms visual c++) speichert die dateien als ascii(ansi)

    die ganzen microsoft funktion sind aber per makro so aufgebaut dass sie mit beidem umgehen können, aber wenn das falsche ankommt auch en fehler ausgeben

    das _T() makro ist dazu da strings(also die strings in der cpp datei) nach tchar umzuformen (#include <windows.h> ist nötig dafür)

    wenn du das makro weglässt gibts ne fehlermeldung, aber man kann das ganze in den projekteisntellungen von vornerein umstellen, eben wenn mans auf nicht festgelegt stellt, dann ist _T() überflüssig

    das ausgabe fenster von visual studio?
    welches ist das?
    da wo die fehler angezeigt werden bzw warnings?

    ja kann man aber das ist nicht ganz trivial, ist zwar auch nicht schwer aber sollte dein wissen überfordern glaub ich...



  • Leute, ich bin Anfänger... wie seid ihr drauf?
    Irgendwelche englischen Erklärungen in Fachsprache helfen mir da auch nicht viel weiter, darum bin ich ja hier, damit ich eine ERKLÄRUNG bekomme.

    Also Unicode und Ansi sind Zeichensätze soviel meine ich ja zu wissen und durch dieses _T() ändere ich den Zeichensatz also? - richtig verstanden?

    @otze
    "error C3861: "OutputDebugString": Bezeichner wurde nicht gefunden."
    sagt mir nichts... irgendwas mit Pointern oder so, ist das gemeint?



  • Skym0sh0 schrieb:

    also
    ich geb dir mal en antwort, weil es ist anfangs echt nicht leicht sich in der msdn oder ähnlichem zurechzufinden, und googlen is auch nicht einfach meistens am anfang.

    also
    es gibt ja unicode und ascii zeichensätze (das sehe ich als gegeben an, das kann man bei wikipedia nachgucken was das ist), normale editoren 8oder ms visual c++) speichert die dateien als ascii(ansi)

    die ganzen microsoft funktion sind aber per makro so aufgebaut dass sie mit beidem umgehen können, aber wenn das falsche ankommt auch en fehler ausgeben

    das _T() makro ist dazu da strings(also die strings in der cpp datei) nach tchar umzuformen (#include <windows.h> ist nötig dafür)

    wenn du das makro weglässt gibts ne fehlermeldung, aber man kann das ganze in den projekteisntellungen von vornerein umstellen, eben wenn mans auf nicht festgelegt stellt, dann ist _T() überflüssig

    das ausgabe fenster von visual studio?
    welches ist das?
    da wo die fehler angezeigt werden bzw warnings?

    ja kann man aber das ist nicht ganz trivial, ist zwar auch nicht schwer aber sollte dein wissen überfordern glaub ich...

    Ok damit konnt ich mal was anfangen, dann probier ich jetzt mal etwas rum 👍



  • 🙄



  • Naja, einmal Google benutzt, erster Hit zu "OutputDebugString":

    -> Sends a string to the debugger for display.
    -> include Windows.h



  • Klingt für mich als hat er keine Lust seine Hausaufgaben selbst zu machen.

    http://www.rz.rwth-aachen.de/global/show_document.asp?id=aaaaaaaaaabzuou



  • hustbaer schrieb:

    Klingt für mich als hat er keine Lust seine Hausaufgaben selbst zu machen.

    Obendrüber steht "Präsenzaufgaben" das ist okay. Das sind Aufgaben, die man während der Übung als Übung macht 😉



  • otze schrieb:

    Obendrüber steht "Präsenzaufgaben" das ist okay. Das sind Aufgaben, die man während der Übung als Übung macht 😉

    Aber wenn Präsenzaufgaben die eigentlich innerhalb 10-15 Minuten in einer Übung abgeschlossen werden sollen auch zu Hause nach mehreren Stunden nicht bewältigt werden, fehlts vermutlich an nötigen Grundlagen, wie z.B. einer sinnvollen Verwendung von Google und des Internets als Informationsquelle im Allgemeinen. Sowas kann (und sollte) man allerdings erlernen und üben, und zwar indem man die Antworten sucht und nicht die Fragen einfach anderen stellt, damit die sie beantworten.

    Für Google-Einsteiger vielleicht folgende Seite: http://petergasser.com/de/google-guide.html



  • C++ ist halt schwer und Hausaufgaben sind das auch keine.
    Is für mich zum üben... aber ich geh jetzt lieber mal spielerisch an die Sache ran und versuch über die Konsole spielbar Mastermind zu programmieren. Ohne Gui und sowas ...
    Wenn ich Aufgaben mache zu denen ich mir nichtmal was vorstellen kann bringt das ja nix und behalten werd ich auch niht viel.


Log in to reply