[Erledigt] printf in DLL nicht sichtbar in C# Konsole


  • Administrator

    Hallo zusammen,

    Ich bin gleich weg und habe nun schon über eine Stunde gesucht und nichts gefunden. Vielleicht weiss es einer zufälligerweise gerade 🙂
    Ich habe in einer DLL C Funktionen mit printf Aufrufen. Wenn ich die C Funktionen in mein C# Konsolenprogramm einbinde, dann sehe ich die printf Ausgaben nicht, der ganze Rest funktioniert aber einwandfrei. Woran könnte dies liegen? Ich dachte, dass ich das schon mal erlebt und gelöst habe, aber erinnere mich einfach nicht mehr und finde nichts dazu 😞

    Grüssli


  • Administrator

    Ok, habe unterwegs mich erinnert, wie ich dies "gelöst" hatte. Problem war, wenn man die Anwendung aus Visual Studio heraus startet. Wenn man sie ausserhalb startet, dann funktioniert es anstandslos. Ich verschiebe mich daher mal schnell selbst ins Kompilerforum 🙂

    Ich nutze VS 2008 (9.0) mit SP1.

    Grüssli



  • Dieser Thread wurde von Moderator/in Dravere aus dem Forum C# und .NET in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Administrator

    Weitere Informationen:
    Scheint am Debugger zu liegen. Habe das Problem nur, wenn ich das Programm debuggen will.
    Per F5 starten -> Geht nicht.
    Ausserhalb starten -> Geht.
    Per Ctrl+F5 starten -> Geht.

    Es hat nichts mit Debug oder Release Build zu tun.

    Hier beschreibt glaub ich jemand das gleiche Problem. Die Antworten haben mir aber nicht geholfen:
    http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/B6B76D00-C5B1-40FD-B38D-92E13EED17D1

    Mit dem neuen Projekt werde ich es gleich noch ausprobieren, bzw. ich mache sogar gleich mal eine frische eigenständige Applikation. Da ich es aber bereits in einer anderen Applikation erlebt habe, um genau zu sein, war es das letzte Mal, als ich InterOp in C# verwendet hatte, ist meine Hoffnung entsprechend gering, dass es funktionieren wird.

    Grüssli


  • Administrator

    Ok, habe endlich rausgefunden woran es lag. Die verwendete C DLL war als Release DLL gebaut worden. Einfach die C DLL als Debug DLL bauen und alles geht einwandfrei. Mir ist zwar immer noch ein Rätsel, wieso dies Auswirkungen auf die Ausgabe über stdout hat. Aber grundsätzlich ist es mir nun fast egal, hauptsache es funktioniert 🙂

    Grüssli


Anmelden zum Antworten