παπι Δημοσ. 22 Σεπτεμβρίου 2011 Δημοσ. 22 Σεπτεμβρίου 2011 Για προγραμματισμό εφαρμογών με γραφικό περιβάλλον σε C++ το Qt είναι πολύ καλό: εύκολο στη χρήση, πλούσιο σε λειτουργίες, τρέχει παντού (σε Windows, Linux, Mac), έχει πολύ καλό γραφικό εργαλείο κατασκευής του περιβάλλοντος (Qt Creator). Γνωμη μου, ολα ευκολα ειναι, αρκει να μαθεις event driven προγραμματισμο. mig http://stackoverflow.com/questions/1073509/should-i-redistribute-msvcrt-dll-with-my-application
migf1 Δημοσ. 22 Σεπτεμβρίου 2011 Δημοσ. 22 Σεπτεμβρίου 2011 Μα δεν έχω VS σου λέω ρε συ... θες να βάλω το dll στο zip?
ΠάρηςΓ Δημοσ. 22 Σεπτεμβρίου 2011 Δημοσ. 22 Σεπτεμβρίου 2011 Βαλε και κανενα χρωματακι! Επισης δε θυμαμαι πως γινεται μαλλον το γυριζεις σε character input καπως και οταν πατας το enter δε κανει αυτο το σπαστικο!
migf1 Δημοσ. 22 Σεπτεμβρίου 2011 Δημοσ. 22 Σεπτεμβρίου 2011 [offtopic] Βαλε και κανενα χρωματακι! Επισης δε θυμαμαι πως γινεται μαλλον το γυριζεις σε character input καπως και οταν πατας το enter δε κανει αυτο το σπαστικο! Θα σπάσει τη συμβατότητα του κώδικα ρε συ, τώρα είναι πλήρως συμβατός με το ANSI standard. Το μεγάλο μου πρόβλημα είναι το AI πάντως, το περίμενα πολύ πιο βατό, αλλά δεν είναι... το βλέπω να με παίρνει κάνα μήνα για να το κάνω καλό [/offtopic]
παπι Δημοσ. 22 Σεπτεμβρίου 2011 Δημοσ. 22 Σεπτεμβρίου 2011 Μα δεν έχω VS σου λέω ρε συ... θες να βάλω το dll στο zip? Καλα λες, μετα απο ψαξιμο ειδα οτι το msvrct.dll ειναι μερος των windows. Κατι μαθαμε
adamco Δημοσ. 23 Σεπτεμβρίου 2011 Δημοσ. 23 Σεπτεμβρίου 2011 Δεν έχει να κάνει με το αν είναι σε κονσόλα ή όχι. Το εκτελέσιμο αρχείο που παράγεται τρέχει μόνο σε όσους υπολογιστές έχουν το ίδιο λειτουργικό σύστημα με σένα. Στα υπόλοιπα θα πρέπει να κάνεις compile ξανά τον πηγαίο κώδικα ώστε να παραχθεί νέο εκτελέσιμο αρχείο για εκείνο το λειτουργικό. Εγώ νομίζα ότι εφόσον το εκτελέσιμο αρχείο που δημιουργήθηκε τρέχει σε DOS θα τρέχει και στο RedHat Linux, στο Ubuntu κλπ. Φυσικά αν θα έχουν και το πρόγραμμα για DOS emulation (DOSEMU). Του άλλαξα και το όνομα πριν το τρέξω σε DOS για να βεβαιωθώ ότι δεν υπάρχει πρόβλημα. Έκανα και μια version σε παραθυρικό περιβάλλον με το VS 8 σε C++ που λειτουργεί στα Windows XP, στα Windows 2000, στα Windows 98 και προηγούμενα. Για τα Windows Vista και τα επόμενα λειτουργικά δεν ξέρω.
migf1 Δημοσ. 23 Σεπτεμβρίου 2011 Δημοσ. 23 Σεπτεμβρίου 2011 Εγώ νομίζα ότι εφόσον το εκτελέσιμο αρχείο που δημιουργήθηκε τρέχει σε DOS θα τρέχει και στο RedHat Linux, στο Ubuntu κλπ. Φυσικά αν θα έχουν και το πρόγραμμα για DOS emulation (DOSEMU). Του άλλαξα και το όνομα πριν το τρέξω σε DOS για να βεβαιωθώ ότι δεν υπάρχει πρόβλημα. Έκανα και μια version σε παραθυρικό περιβάλλον με το VS 8 σε C++ που λειτουργεί στα Windows XP, στα Windows 2000, στα Windows 98 και προηγούμενα. Για τα Windows Vista και τα επόμενα λειτουργικά δεν ξέρω. Όταν λέμε δεν τρέχει σε άλλο λειτουργικό, εννοούμε natively. Με emulation μπορεί να τρέξει, μπορεί και όχι... εξαρτάται από το πόσο πιστό emulation κάνει ο emulator. Η ουσία είναι πως το εκτελέσιμο αρχείο είναι σε γλώσσα μηχανής που καταλαβαίνει μόνο η πλατφόρμα στην οποία έχει γίνει compile ο πηγαίος κώδικας. Όσο για τις εκδόσεις των Windows, δεν λογίζονται διαφορετικές πλατφόρμες. Οι 4 βασικές πλατφόρμες είναι Windows, Unix, Linux και MacOS (και εσχάτως τα λειτουργικά των smart phones).
ΠάρηςΓ Δημοσ. 23 Σεπτεμβρίου 2011 Δημοσ. 23 Σεπτεμβρίου 2011 Αν ειναι ιδια αρχιτεκτονικη λογικα ειναι ιδιος ο κωδικας assembly αλλα αλλαζει το format του αρχειου. Πχ τα exe ειναι PE format ενω τα linux δε ξερουν απο PE.
adamco Δημοσ. 24 Σεπτεμβρίου 2011 Δημοσ. 24 Σεπτεμβρίου 2011 Nop. Θελει CRT. Μπορεις να την ενσωματωσεις ( project properies / config properties / C++ / code generation/ runtime library σεταρεις σε multi-threaded (MT) ) Τι είναι αυτά; Δεν κατάλαβα τίποτα... Εγώ ασχολούμαι μόνο με την δημιουργία επαγγελματικών προγραμμάτων για Windows XP. Αν θέλω να λειτουργούν και στα Linux θα το δώσω στους ειδικούς που γνωρίζουν καλύτερα πως γίνεται.
defacer Δημοσ. 24 Σεπτεμβρίου 2011 Δημοσ. 24 Σεπτεμβρίου 2011 Τι είναι αυτά; Δεν κατάλαβα τίποτα... Εγώ ασχολούμαι μόνο με την δημιουργία επαγγελματικών προγραμμάτων για Windows XP. Αν θέλω να λειτουργούν και στα Linux θα το δώσω στους ειδικούς που γνωρίζουν καλύτερα πως γίνεται. Δεν ξέρω αν πρέπει να γελάσω ή να κλάψω. Εντάξει, η άγνοια δεν είναι έγκλημα (βέβαια δεν είναι και "επαγγελματική", αν μου επιτρέπεις). Αλλά να σου μιλάει για επιλογές menu του Visual Studio (που χρησιμοποιείς) τις οποίες θα έπρεπε να βλέπεις μπροστά σου τουλάχιστον μία φορά (στην πράξη πολλές φορές) για κάθε project, και συ να νομίζεις ότι μιλάει για Linux... Αν σου έδινε εσένα ο γιατρός φάρμακα και σου έλεγε "δεν ξέρω πώς λειτουργούν αλλά μην ανησυχείς, σε όσους τα έχω δώσει μέχρι τώρα δουλέψαν τέλεια", τι γνώμη θα σχημάτιζες;
adamco Δημοσ. 2 Οκτωβρίου 2011 Δημοσ. 2 Οκτωβρίου 2011 Ε φυσικά μιλάω και για Linux εφόσον η αρχική μου ερώτηση ήταν αν δουλεύει το hello.exe που έφτιαξα με το Visual Studio 8 σε Windows XP σε όλες τις πλατφόρμες. Δούλεψα το Visual Studio 8 μόνο 5 λεπτά... Και ο παπι απάντησε πάνω σε αυτό το ζήτημα όπως και οι migf1 και CtrlFreak. Μάλλον εσύ δεν κατάλαβες την ερώτηση. Οι πληροφορίες του billxl ήταν πολύ χρήσιμες για να δω και τις δυνατότητες του compiler του Visual C++ Express. Όσο για τα επαγγελματικά προγράμματα στα Windows XP τα φτιάχνω με εργαλεία όπως το SDK της Microsoft και την Rapid-Q του William Yu.
Sentrex Δημοσ. 3 Οκτωβρίου 2011 Δημοσ. 3 Οκτωβρίου 2011 Μόλις λίγο πριν έφτιαξα το "Hello world!" για κονσόλα με το VS 8 επειδή το SP3 δεν μπορεσα να το εγκαταστήσω για να ολοκληρώσω και την εγκατάσταση του VS 10 express. Τώρα αυτό το hello.exe θα λειτουργεί σε όλα τα computers ή απαιτούνται και άλλα αρχεία; Όσο αναφορά το πρώτο κομμάτι του πόστ σου, θα πρότεινα όταν με το καλό βάλεις VS 10 να βάλεις την πλήρη έκδοση. Θεωρητικά δεν θα πρέπει εσύ ο ίδιος να παρατηρήσεις διαφορά, αλλά έχω δει πολλά άτομα (συμπεριλαμβανομένου και του εαυτού μου όταν ξεκίνησα (όχι με VS 10)) να πέφτουν σε προβλήματα με απλό κώδικα και να φτέει η express έκδοση επειδή δεν έχει όλα τα include αρχεία και όλες τις βιβλιοθήκες. Και αυτά τα προβλήματα συνήθως εμφανιζόντουσαν όταν προσπαθούσαν(θούσαμε) να κάνουμε compile κώδικα απο παραδείγματα βιβλίων. Όπως είπα, θεωρητικά δεν θα αντιμετωπίσεις πρόβλημα με την express, αλλά καλό είναι να υπάρχει σαν πληροφορία. Στο desktop ναι, (εχω καμια 10 crt) στο laptop που δεν εχω crt μαλλον δεν Δεν είμαι σίγουρος πως να διατυπώσω αυτά που έχω να πω, οπότε επιτρέψτε μου να τα παρουσιάσω σαν ένα μικρό πίνακα: (Τα παρακάτω ισχυούν εφόσον δεν γίνουν αλλαγές στον linker για να χρησιμοποιεί διαφορετικές βιβλιοθήκες) Κώδικας που γίνεται compile σε MSVC 6: Βιβλιοθήκη που χρειάζεται στο σύστημα που θα εκτελεστεί: msvcrt.dll Συστήματα που διαθέτουν αυτή τη βιβλιοθήκη απο την αρχική εγκατάσταση: >=Win2K (Win2K, Win2K3(2003), XP, Vista, 7) Κώδικας που γίνεται compile σε VS 8: Βιβλιοθήκη που χρειάζεται στο σύστημα που θα εκτελεστεί: msvcrt90.dll Συστήματα που διαθέτουν αυτή τη βιβλιοθήκη απο την αρχική εγκατάσταση: >=Windows Vista (Vista, 7) -- Σημείωση: Είμαι 70% σίγουρος ότι υπάρχει στο SP3 των Windows XP αλλά δεν μπορώ να το επιβεβαιώσω αυτή τη στιγμή Κώδικας που γίνεται compile σε VS 10: Βιβλιοθήκη που χρειάζεται στο σύστημα που θα εκτελεστεί: msvcrt100.dll Συστήματα που διαθέτουν αυτή τη βιβλιοθήκη απο την αρχική εγκατάσταση: >=Windows Vista (Vista, 7) Λογικό είναι συστήματα που δεν έχουν την απαραίτητη βιβλιοθήκη την οποία χρησιμοποίησε ο linker σου να μην τρέξουν. Π.χ. ένα πρόγραμμα που έκανες compile σε VS 10, εάν το τρέξεις σε καθαρή εγκατάσταση XP, θα σου πει ότι λείπει το msvcrt100.dll Ίσως ξεφεύγει απο την ουσία του θέματος, αλλά μιας και πιάσαμε το θέμα, για να κάνεις μια εφαρμογή που έφτιαξες σε VS 10 να τρέξει σε XP, πρέπει να κάνεις τα παρακάτω απλά βήματα: 1. Κατεύασε το msvcrt.lib (κατά προτίμηση θα έβρισκα το Windows Platform SDK ή θα το έπερνα απο την MSVC 6) 2. Τοποθέτησέ το στο φάκελο του project σου με ένα άλλο όνομα (CRT6.lib είναι μια ουδέτερη πρόταση) 3. Στα project settings σου, linker -> Input, πές του /NODEFAULTLIB (Ignore all default libraries -> Αγνόηση όλων των αρχικών(?) βιβλιοθηκών) -> αυτό θα πεί στον linker να ξεχάσει όλες της βιβλιοθήκες που κοίταγε απο μόνο του και να χρησιμοποιήσει αυτές που υποδικνύεις στο πεδίο "Additional Dependencies" 4. Στο πεδίο "Additional Dependencies" πρόσθεσε στο τέλος το CRT6.lib και αφαίρεσε οποιαδήποτε αναφορά στο "msvcrt.lib" που έχει αυτή η γραμμή. Ελπίζω αυτά να βοηθάνε κάποιους.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.