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

Βιβλιοθήκη NCurses σε Windows.


AMIOX?

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

Γεια σας

 

 

 

Θέλω να χρησιμοποιησω την NCurses σε προγράμματα C++ στα windows.π.χ. να εκτελέσω το παρακάτω απο το Code blocks ή κατευθείαν στο cmd.

 

>
#include <ncurses.h>

int main(int argc, char **argv)
{
int X = 10;
int Y = 10;
int ch;
initscr();
noecho();
keypad(stdscr,TRUE);
move(Y, X);
printw("M");
refresh();
do
{
ch = getch();
move(Y, X);
printw(" ");
switch(ch)
{
case KEY_UP: Y--; break;
case KEY_DOWN: Y++; break;
case KEY_LEFT: X--; break;
case KEY_RIGHT: X++; break;
}
move(Y, X);
printw("M");
refresh();
}
while (ch!=27);
endwin();
return 0;
}

 

Τα error είναι:

 

 

.cpp|1|error: ncurses.h: No such file or directory|

.cpp||In function 'int main(int, char**)':|

.cpp|8|error: 'initscr' was not declared in this scope|

.cpp|9|error: 'noecho' was not declared in this scope|

.cpp|10|error: 'stdscr' was not declared in this scope|

.cpp|10|error: 'TRUE' was not declared in this scope|

.cpp|10|error: 'keypad' was not declared in this scope|

.cpp|11|error: 'move' was not declared in this scope|

.cpp|12|error: 'printw' was not declared in this scope|

.cpp|13|error: 'refresh' was not declared in this scope|

.cpp|16|error: 'getch' was not declared in this scope|

.cpp|21|error: 'KEY_UP' was not declared in this scope|

.cpp|22|error: 'KEY_DOWN' was not declared in this scope|

.cpp|23|error: 'KEY_LEFT' was not declared in this scope|

.cpp|24|error: 'KEY_RIGHT' was not declared in this scope|

.cpp|31|error: 'endwin' was not declared in this scope|

||=== Build finished: 15 errors, 0 warnings ===|

 

 

δεν βρίσκει την NCurses δηλαδή.

 

Παρακαλω οτι ξέρετε για αυτην την βιβλιοθηκη θα βοηθήσει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κατέβασε την PDCurses: http://pdcurses.sourceforge.net/

που είναι συμβατή σε πολύ μεγάλο ποσοστό με την ncurses (και την curses).

 

Κατόπιν άλλαξε τα pre-processor directives σου, σε...

 

>
#include <curses.h> // αντί για <ncurses.h>

 

με την προϋπόθεση πως την έχεις βάλει στους default φακέλους του mingw (το Code::Blocks έρχεται με σετταρισμένο το mingw gcc toolchain, έχει ξεχωριστό download): http://comptb.cects....curses-to-mingw

 

(το πακέτο της PDCurses περιέχει pre-compiled mingw binaries)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

δοκίμασε cygwin

 

Δεν νομίζω πως είναι καλή ιδέα να στήσει ολόκληρο Posix layer πάνω στο Win32 APi (και με ασύμβατα μάλιστα εκτελέσιμα έξω από το Cygwin) όταν το μόνο που θέλει (ρώτησε) είναι πως να τρέξει ncurses στα Windows.

 

 

 

Μου κάνει κάτι σαν να ζητάει κάποιος ας πούμε λεβγιέ ταχυτήτων από τριαξονική νταλίκα και να του προτείνεις να αγοράσει τριαξονική νταλίκα :lol:

 

 

Επεξ/σία από migf1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν νομίζω πως είναι καλή ιδέα να στήσει ολόκληρο Posix layer πάνω στο Win32 APi (και με ασύμβατα μάλιστα εκτελέσιμα έξω από το Cygwin) όταν το μόνο που θέλει (ρώτησε) είναι πως να τρέξει ncurses στα Windows.

 

 

Μου κάνει κάτι σαν να ζητάει κάποιος ας πούμε λεβγιέ ταχυτήτων από τριαξονική νταλίκα και να του προτείνεις να αγοράσει τριαξονική νταλίκα :lol:

 

 

εντάξει , το 'πα επειδη ανέφερε `κατευθείαν στο cmd` , και για να ξέρει οτι υπάρχει ...

 

στα σίγουρα δεν το συστήνω σε κάποιον που θέλει να γράψει Native Windows κώδικα αλλά εγω αυτό χρησιμοποιώ ,

 

σ'αυτό κάνω compile και όλα .... αλλά δεν με νοιάζουν και τόσο τα windows --αναγκαίο κακό ...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Άλλος ένας χρόνιος χρήστης του Cygwin εδώ, από την εποχή των beta 17, 18 κτλ.

 

Το μόνο ουσιαστικό overhead είναι ότι πρέπει μαζί με τα εκτελέσιμά σου να διαθέτεις και το cygwin1.dll. Δεν είναι κάτι τραγικό.

 

Φυσικά για native compilation, προτείνεται mingw/msys.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κι εγώ το 'χω ρε παιδιά το Cygwin, όπως και το mingw, καθώς επίσης και κανονικό Ubuntu σε ένα παλιό laptop.

 

Αυτό όμως δεν σημαίνει πως όταν με ρωτάνε για ncurses στα Windows πρέπει να τους λέω να εγκαταστήσουν το Cygwin. Αν ήταν έτσι, γιατί ας πούμε δεν του προτείνετε να εγκαταστήσει κανονικό Linux σε VM? Πολύ καλύτερο από το Cygwin :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το προβλημα ειναι πως τα windose δεν υποστηριζουν τα διαφορα escape code για τα χρωματα και πρεπει να πας μεσω windose api για να βαλεις χρωμα κτλ στη console.Υπάρχει μια βιβλιοθηκη που δουλευε και στα δυο αλλα δε τη θυμαμαι.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν υφίσταται πρόβλημα με τα χρώματα. Η PDCurses είναι cross-platform.

 

ΥΓ. Αποκλειστικά για χρώματα, έχω φτιάξει κι εγώ ένα cross-platform mini-interface, αποκλειστικά γραμμένο στον C/C++ pre-processor: http://www.insomnia....erminal-output/

 

Δίνω το νήμα του φόρουμ, αντί για το site μου, γιατί στο νήμα έχω μεταγενέστερη έκδοση (1.04, με πολύ περισσότερα πράγματα)... με την ελπίδα πως κάποιος/κάποιοι θα την κάνουν λίγο beta-testing για εντοπισμό bugs... και μετά αν είναι, θα ενημερώσω και το site (τώρα έχει παλαιότερη έκδοση: 1.03).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...