2012-03-29 7 views
0

Ich benutze JNI, um DLL auf Windows aufzurufen.Warum hat die Konsole von myeclipse keine Ausgabe?

Mein Java-Code ist wie folgt.

Meine Debuginformationen sind hier. debug image

Hinzufügen Ich sehe, dass die Info nicht null ist. Aber warum Konsole nur dddd ohne etwas anderes ausgibt.

Hilfe, bitte.

+0

Warum sagen Sie uns nicht, was der native Code zeigt oder noch zeigt? Vielleicht schließst du den Standard? Vielleicht gibt es einen Fehler im nativen Code? – Java42

+0

@ChuckFricano In der DLL habe ich Dateieingabe und -output verwendet. Und wenn die Dateioperation beendet ist, habe ich sie geschlossen. Wenn es darauf ankommt, schreibe ich "\t freopen (" CON "," w ", stdout);" am Ende der Funktion ausführen. – slee

Antwort

1

Aufruf

freopen("CON", "w", stdout); 

, um zu versuchen und lösen so etwas wie

freopen("myStdOut.log", "a", stdout); 

wird nicht in EIDE arbeiten. Entfernen

freopen("CON", "w", stdout); 

und wenn Sie tun

freopen("myStdOut.log", "a", stdout); 

Entfernen auch.

+0

Hey, thx. Ich mache wie du sagst. Ich habe "freopen ..." entfernt und die Konsole hat jetzt ausgegeben. Aber wenn ich Konsolenausgabe in dll umleiten will, wie kann ich es machen, wenn ich nicht freopen verwende ..? – slee

+0

Ich weiß nicht die vollständigen Details von dem, was Sie versuchen zu tun. Stellen Sie eine weitere Frage zum Umleiten der Konsole in einer DLL und fügen Sie Ihren JNI-Code und die vollständige Beschreibung des Problems ein. – Java42