Προς το περιεχόμενο

Ελληνικά και C++


Grad

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω την Bloodshed Dev-C++ 4.9.9.0. Το πρόβλημα είναι ότι ενώ γράφω κανονικά ελληνικούς χαρακτήρες στον compiler όταν τρέχει το πρόγραμμα τα βγάζει "κινέζικα" στην γραμμή εντολών. Τι μπορώ να κάνω ώστε να βλέπω σωστά ελληνικά;

 

Το πρόγραμμά μου είναι γραμμένο σε C.

Δημοσ.

Isws na exei na kanei me tis ry8miseis twn windows kai me ta elhnika

sto systhma sou. Egw oses fores exw grapsei ellhnika sto DevC++

den antimetwpisa kapoio problhma.

An einai tsekare ta setings gia ta ellhnika...

Δημοσ.

Συγνώμη δικό μου λάθος. Σε windows xp (Ελληνικά) που έχω

στο σπίτι, όντως δεν τα εμφανίζει τα ελληνικά.

Αν θυμάμαι καλα σε windows 2000 που είχα φτιάξει κάποια προγράμματα

με έλληνικα, δούλευαν... Όμως δεν είμαι απόλυτα σίγουρος γιατί πάει

καιρός. Αν μπορέσω θα το τσεκάρω σύντομα και 8α σου απαντήσω...

Δημοσ.

το πρόβλημα λύνεται προσθέτοντας system("chcp 1253>nul"); μετά την main(). Σε παράθυρο δεν έχω πρόβλημα αλλά το πρόβλημα για μένα εξακολουθεί να υπάρχει σε πλήρης οθόνη του εκτελέσιμου ("κινέζικα"..). Εχει κάποιος μια λύση γιαυτό?

  • 4 εβδομάδες αργότερα...
Δημοσ.

Χθες αποφάσισα να ψάξω λίγο περισσότερο τις διάφορες «συνταγές» για τα ελληνικά των Windows και την υποστήριξη τους από το DOS-BOX.

 

Εάν θέλετε λοιπόν να έχετε ελληνικού χαρακτήρες για λογισμικά console που έχετε αναπτύξει σε Windows IDEs, τότε επιλέξτε ως φόντο του DOS-BOX την Unicode γραμματοσειρά “Lucida Console” και ύστερα δώστε την εντολή CHCP 28597 ώστε να ενεργοποιήσετε την κωδικοσελίδα “ISO-8859-1-Greek” ή την CHCP 1253 ώστε να ενεργοποιήσετε την κωδικοσελίδα “ANSI-Greek”.

 

Κατά καιρούς οι δυο αυτές κωδικο-σελίδες προτείνονται ως λύσεις όμως εάν έχετε ως επιλεγμένη γραμματοσειρά τα “Raster Fonts” ή γυρίσετε το DOS-BOX σε full-screen mode (εδώ μπορεί να θέλει πείραγμα το autoexec.nt με τις κατάλληλες CP εντολές από την εποχή του DOS), δεν δουλεύουν.

 

:)

Δημοσ.

Την γλώσσα που λέτε δεν την ξέρω, αλλά για Dos-Box εκτός από

“Lucida Console” που γράφει ο Directx επιλέξτε στο Layout παντού το

80,25 και στο Defaults και στο properties (ειδικότερα για full screen).

Δεν είναι σίγουρο, μια δοκιμή κάνε.

 

Τουλάχιστον κάποια δικά μου προγράμματα Dos, έτσι τρέχουν κανονικά.

Δημοσ.

Να συμπληρώσω το εξής.

Αν τρέξω Dos πρόγραμμα που έχει graphics, μετά σε full screen τα ελληνικά γίνονται κινέζικα.

Δεν ξέρω αν γνωρίζεις από Dos, αλλά μπορείς να δουλέψεις σε text mode or graphics mode.

Σε text mode δεν υπάρχει κανένα πρόβλημα. Επειδή έχω δουλέψει πολλά χρόνια το Dos

αν θες ρώτα κάτι. (Επίσης πρέπει να γνωρίζεις ότι τα XP έχουν δύο διαφορετικά DOS.

Από start-run το ένα είναι με cmd και το άλλο με command).

Δημοσ.

Όταν αλλάζεις από DOS BOX σε full screen ουσιαστικά αλλάζεις τον τρόπο σχεδιασμού του κειμένου (και των γραφικών) αφού στην πρώτη κατάσταση η εικόνα σχεδιάζεται από το Windows GDI ενώ στην δεύτερη απευθίας από τον VGA Controller.

Στην δεύτερη περίπτωση εμφανίζεται πρόβλημα διότι η μνήμη φόντων (Font Table) του VGA Controller δεν διαθέτει τους κατάλληλους ASCII χαρακτήρες (ΟΕΜ fonts).

Οι παλιές κάρτες γραφικών (10-15 χρόνια πριν) είτε διέθεταν στην μνήμη τους έτοιμους ελληνικούς χαρακτήρες είτε μπορούσαν να τους περάσουν με ορισμένα utility (προγραμματισμός του EGA/VGA Font Controller, Int 10, function 0, subfunction 0 ή 10).

Ακόμα καλύτερα φόντους μπορούσες να φορτώσεις με τα εργαλεία του DOS, όπως τον DISPLAY.SYS, ο οποίος όμως ακόμα και στην έκδοση των ’95, μετά από ένα καλό SETVER σε DOS 7.00, είναι ασύμβατος με το CON interface των XP.

Από την άλλη πλευρά, η κλήση «Int 10, function 0» προγραμματίζει μεν το VGA Font Table σε DOS XP όμως φτάνει μια αλλαγή από full screen σε DOS BOX και το αντίστροφο ώστε ο VGA Controller να επανέλθει στους πρότερους φόντους (προσωπικό πείραμα).

Καλύτερη λύση συνεπώς η σχεδίαση ενός TSR που επεμβαίνει στις ρουτίνες εκτύπωσης χαρακτήρων του Interrupt 10h και κάνει την αλλαγή από 437g (Memotek) σε ANSI-1253 (Windows) όμως εδώ χρειάζεται μεγάλη προσοχή & αρκετή ταλαιπωρία (άσε ότι η setvect & getvect του DOS C compiler μου, MS C 6, δεν δουλεύουν πια σε XP –αντίθετα με εκείνους της Turbo C++ 3.0 για DOS! ~μπράβο Borland).

Αν μάλιστα αναλογιστούμε πως από τα Vista και πέρα η Console αλλάζει εντελώς υφή (τέλος στην εκτέλεση DOS λογισμικού) η όλη προσπάθεια είναι κενού νοήματος.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...