Από default στα 64bit Vista ο windows media player είναι εγκατεστημένος σε δύο εκδόσεις την 32bit και την 64bit. Ωστόσο η Microsoft έχει προεπιλέξει τον 32μπιτο. Κάτι τέτοιο γίνεται κυρίως για τα προβλήματα συμβατότητας που παρατηρούνται σε ορισμένα προγράμματα(π.χ ορισμένα plug-in δεν "παίζουν" στον 64μπιτο). Παράδειγμα της λογικής αυτής αποτελεί και ο 64μπιτος Internet Explorer ο οποίος δεν είναι προεπιλεγμένος καθώς π.χ το abode flash δεν μπορεί να εγκατασταθεί σε 64bit browser, περιορίζοντας τη λειτουργικότητά του.
Το γεγονός της ύπαρξης και των δύο εκδόσεων του WMP μπορεί να γίνει αντιληπτό από την εμφάνισή του στα Program Files(x86), αλλά και στα 64bit Program Files.
Υπάρχουν δύο τρόποι να θέσετε τον WMP 11 64bit default:
- Πάμε στο Start -> Run, και εκτελούμε “%Programfiles%\Windows Media
Player\wmplayer.exe” (without quotes). Εναλλακτικά, μπορείτε να δημιουργήσετε μία συντόμευση με target and location όπως το προηγούμενο και να το τοποθετήσετε στο desktop or στην Quick Launch Bar.
- Για τον δεύτερο τρόπο, ανοίχτε ένα administrative command prompt window (Start -> Run -> cmd), εκεί δίνετε %windir%\system32\unregmp2.exe /SwapTo:64. Μετά ανοίγετε τον Registry Editor (regedit) και ακολουθείτε το μονοπάτι HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\wmplayer.exe. Στο registry subkey “Path” πρέπει να είναι το “%Programfiles(x86)%\Windows Media Player”
(without quotes), και στο “(Default)” subkey το
“%ProgramFiles%\Windows Media Player\wmplayer.exe”.
Είστε έτοιμοι!
Κάντε το αντίστροφο για να επιτύχετε τα αντίστροφα αποτελέσματα.
Περίεργο "bug" αλλά ισχύει. Στην περίφημη sidebar των Vista το Weather Gadget δεν λειτουργεί, εφόσον τα region settings δεν είναι setted σε κάποια defaults. Συγκεκριμένα πάμε start-->control panel-->clock, language, and region-->Regional and Language Options-->(tab format)English (united states)-->(tab location) UK or USA-->(tab administrative) change system locale (...and restart)
Εναλλακτικά, υπάρχουν και άλλα πολλά Weather and Forecasts gadgets και ένα από τα διασημότερα είναι το WeatherBug.
Η τελευταία εργασία (4η) του μαθήματος του μαθήματος Προγραμματισμός στη C++ είχε ως σκοπό την ολοκλήρωση ενός φίλτρου ανεπιθύμητων μυνημάτων.
Αν και αρκετός κώδικας δινόταν, η λογική και η εκφώνηση της άσκησης ήταν τέτοιες ώστε η δημιουργία μίας εσωτερικής τάξης FeatureSelector ήταν αναγκαία για τις ακόλουθες λειτουργείες:
- Άνοιγμα, ανάγνωση και φόρτωση των περιεχομένων των αρχείων-μυνημάτων (χρήση maps, xfstream)
- Η μεταφορά συγκεκριμένων λέξεων-κλειδιών σε vectors και η υλοποίηση της αντίστοιχης sort
- Η λειτουργία μίας εσωτερικής τάξης const_iterator και η παροχή αντίστοιχων μεθόδων spamBegin(), spamEnd(), legitBegin(), legitEnd()
Το πρόβλημα που αντιμετώπισα είχε τελικά να κάνει με τον const_iterator. Οι iterators οφείλουν στις περισσότερες περιπτώσεις (ακόμα και στην ιδιάζουσα συγκεκριμένη που περιείχε δύο vectors) να επιστρέφουν δείκτες!
Ακολουθεί τμήμα του κώδικα:
class const_iterator {
private:
const WordScore* w;
vector<WordScore> v;
unsigned p;
public:
const_iterator(const vector<WordScore>& vec, const
unsigned short ptr) : v(vec), p(ptr) { w=&v[p]; }
const_iterator operator++(int)
{ return const_iterator(v, p++); }
bool operator!=(const const_iterator& right)
{ return w!=right.w; }
const_iterator operator=(const const_iterator& right)
{
if(this == &right) return *this;
v=right.v; p=right.p;
return *this;
}
void print(ostream& out, const bool Scores) const
{
out<<v[p].getWord();
if(Scores) out<<" "<<v[p].getScore();
out<<endl;
}
};
FeatureSelector(const string& legitFilenames,
const string& spamFilenames, const unsigned short threshold);
const const_iterator legitBegin() const
{ return const_iterator(legitScores, 0); }
const const_iterator legitEnd() const
{ return const_iterator(legitScores, legitScores.size()-1); }
const const_iterator spamBegin() const
{ return const_iterator(spamScores, 0); }
const const_iterator spamEnd() const
{ return const_iterator(spamScores, spamScores.size()-1); }