Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Thargan
Beiträge: 14
Registriert: 06.12.2014, 19:08

Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Thargan »

Hallo,

bin gerade dabei meine uralten Projekte abzustauben.
Ich habe früher mit VC6.0 Win32 gearbeitet und will das jetzt auf Windows 7 mit VC 2013 Community umsetzen.

Nachdem das Programm nun ansatzweise lauffähig ist, stelle ich fest, dass der Text auf dem Bildschirm, also Fenstername, Dialogbox und Statusleiste z.B., auf Chinesisch ist, oder zumindest so aus sieht.

Gleichzeitig gebe ich einige Statusmeldungen in eine Datei aus und das ist einwandfrei lesbar.

Ich vermute mal, dass es irgendwas mit dem Unicode zu tun hat, den ich damals nicht verwendet habe.
Muss man da vorher irgendwas initialisieren ?
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Krishty »

Nutzt du _T("foo") bzw. TEXT("foo") oder L"foo" für deine Texte? Falls nicht, musst du das in den Projekteinstellungen unter General und Character Set signalisieren indem du Use Multy-Byte Character Set auswählst.

Und sobald das Schlimmste überstanden ist, ganz ganz schnell auf UTF-16 portieren! Die ANSI-WinAPI ist deprecated.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von dot »

Ich postuliere folgendes: Als du dein Programm kompilieren wolltest, hat dir der Compiler einen Haufen Fehlermeldungen von wegen "const char [n] kann nicht in LPCWSTR konvertiert werden" hingeworfen. Daraufhin hast du überall fein säuberlich (LPCWSTR) hingeschrieben, um den Compiler zum Schweigen zu bringen.

Die chinesischen Zeichen sind, was du nun davon hast. Bevor du das nächste Mal einfach irgendwo einen Cast auspackst, solltest du lieber erstmal kurz reflektieren, was du eigentlich gerade tust. Der Compiler wollte dir mit der Fehlermeldung etwas sagen. Mit deinem Cast sagst du dem Compiler "ich weiß, dass dir das jetzt nicht gefallen wird, vertrau mir, ich weiß mehr darüber, was hier passiert, als du". Rein prinzipiell gilt, dass man in C++ nur selten Casts braucht, insbesondere wenn es um Pointertypen geht (solche Casts sollten in einem ordentlichen C++ Programm am besten gar nicht vorkommen); und wenn dann bitte C++-Casts und keine C-Casts, letztere machen es einem nur noch leichter, Mist zu bauen... ;)

VC6 war per Default noch auf ANSI gestellt, seit VS 2005 ist der Default Unicode. Man kann mit dem TEXT() Makro etc. Win32 Code schreiben, der beides supported. In Anbetracht der Tatsache, dass vor einiger Zeit schon das 21. (in Worten: einundzwanzigste) Jahrhundert begonnen hat, wäre mein Rat allerdings, das Character Set auf Unicode zu belassen und stattdessen entweder mit ASCII char Strings zu arbeiten und explizit die Ansi Varianten der WinAPI Funktionen aufzurufen (deren Name endet mit A, wie z.B. SetWindowTextA()) oder mit Unicode Stings zu arbeiten und explizit die Unicode Varianten zu verwenden (deren Name endet mit W).

PS: Es gibt mittlerweile VS 2015 ;)
Thargan
Beiträge: 14
Registriert: 06.12.2014, 19:08

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Thargan »

Ich habe die Varianten schon gesehen und zumindest die "L" Variante ausprobiert. Die kannte der Compiler zu diesem Zeitpunkt nicht.

Wie kann ich das einstellen, damit Deine Beispiele akzeptiert werden ?

Meine neuen Projekte will ich natürlich auf dem aktuellen Stand entwickeln. Dazu werde ich dann wohl die Beispiele verwenden.

Allerdings bin ich mir immer noch nicht sicher, welche Entwicklungsumgebung ich nutzen will.
vs2013community lockt damit, dass alles zur Verfügung steht, wie Resourceneditor, den ich schon bräuchte. Aber mein Windows 7 kratzt da angeblich an der Grenze herum. Und offenbar kann ich nur das SDK8.x einbinden, welches wieder mit Windows 7 aneckt. So zumindest habe ich es verstanden.

VS2008 uns VS2010 habe ich auch installiert, aber da stören mich die Einschränkungen wie Resourceneditor und ich glaube ASM wird nicht unterstützt.
Wenn einer ne Idee hat, welche Programme ich da nutzen sollte, bin ganz Ohr.

Wenigstens weiss ich jetzt, dass ich zunächst Direct3D 9 verwenden werde.

Ausserdem sei erwähnt, dass ich zunächst Windows-Typische Programme, also Tools, erstellen will, vielleicht ist es wichtig, um mir nen Tip zu geben.


Was "ganz ganz schnell auf UTF-16 portieren" bedeutet, habe ich ehrlich gesagt nicht ganz verstanden.
Ich würde das mal gleich setzen mit "auf Unicode" umsteigen. Aber das will und muss ich ja sowieso.

Und um Deine Varianten nutzen zu können, muss ich jene Einstellungen vornehmen ?
Oder muss ich eine bestimmte Headerdatei einbinden, damit ich diese Varianten nutzen kann ?

Kann mir einer ein gutes Buch vorschlagen, in dem die "neuen" Regeln erklärt sind ?
Thargan
Beiträge: 14
Registriert: 06.12.2014, 19:08

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Thargan »

dot hat geschrieben:Ich postuliere folgendes: Als du dein Programm kompilieren wolltest, hat dir der Compiler einen Haufen Fehlermeldungen von wegen "const char [n] kann nicht in LPCWSTR konvertiert werden" hingeworfen. Daraufhin hast du überall fein säuberlich (LPCWSTR) hingeschrieben, um den Compiler zum Schweigen zu bringen.
Jep, genau DAS habe ich gemacht :-)
Die chinesischen Zeichen sind, was du nun davon hast. Bevor du das nächste Mal einfach irgendwo einen Cast auspackst, solltest du lieber erstmal kurz reflektieren, was du eigentlich gerade tust. Der Compiler wollte dir mit der Fehlermeldung etwas sagen. Mit deinem Cast sagst du dem Compiler "ich weiß, dass dir das jetzt nicht gefallen wird, vertrau mir, ich weiß mehr darüber, was hier passiert, als du". Rein prinzipiell gilt, dass man in C++ nur selten Casts braucht, insbesondere wenn es um Pointertypen geht (solche Casts sollten in einem ordentlichen C++ Programm am besten gar nicht vorkommen); und wenn dann bitte C++-Casts und keine C-Casts, letztere machen es einem nur noch leichter, Mist zu bauen... ;)
Viel Schelte, aber nicht lehrhaftes... ;)
VC6 war per Default noch auf ANSI gestellt, seit VS 2005 ist der Default Unicode. Man kann mit dem TEXT() Makro etc. Win32 Code schreiben, der beides supported. In Anbetracht der Tatsache, dass vor einiger Zeit schon das 21. (in Worten: einundzwanzigste) Jahrhundert begonnen hat, wäre mein Rat allerdings, das Character Set auf Unicode zu belassen und stattdessen entweder mit ASCII char Strings zu arbeiten und explizit die Ansi Varianten der WinAPI Funktionen aufzurufen (deren Name endet mit A, wie z.B. SetWindowTextA()) oder mit Unicode Stings zu arbeiten und explizit die Unicode Varianten zu verwenden (deren Name endet mit W).
Dieser Absatz ist schon viel lehrreicher.
Der Compiler verwendet ja schön die W-Variante. Aber genau deshalb hatte ich ja die Fehlermeldungen.
Cast hin oder her. Das Makro TEXT() castet ja dann vermutlich auch wieder. ^^

Aber danke, das hilft erstmal weiter. :idea:

Strings unter C/C++ waren mir schon immer unheimlich. Ich hoffe, ich bekomme das in den Griff.
Kann ich denn jetzt noch Bücher von VOR 2005 sinnvoll nutzen ?
Dann müsste ich die nach 10 Jahren wieder ausmotten.
Vom Unicode habe ich natürlich gehört, aber ich brauchte es damals nicht beachten. Und irgendwas stand da auch was in meinen Büchern drüber.
PS: Es gibt mittlerweile VS 2015 ;)
VS 2015 läuft erst ab Windows 8 bzw. 10
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von dot »

Thargan hat geschrieben:Viel Schelte [...]
Die hast du dir auch verdient, denn:
Thargan hat geschrieben:Jep, genau DAS habe ich gemacht :-)
:P


anyways...
Thargan hat geschrieben:Der Compiler verwendet ja schön die W-Variante. Aber genau deshalb hatte ich ja die Fehlermeldungen.
Cast hin oder her. Das Makro TEXT() castet ja dann vermutlich auch wieder. ^^
Nicht ganz. Im Prinzip ist das alles ganz einfach:

Code: Alles auswählen

#ifdef UNICODE
  #define TEXT(str) L##str
  typedef WCHAR TCHAR;
#else
  #define TEXT(str) str
  typedef CHAR TCHAR;
#endif

#ifdef UNICODE
  #define SetWindowText  SetWindowTextW
#else
  #define SetWindowText  SetWindowTextA
#endif

// ...
Das TEXT() Makro castet nicht, sondern packt – wenn Unicode aktiviert ist – einfach ein L vor was auch immer du ihm hinwirfst. TEXT("bla") expanded dann also zu L"bla". Dann gibt es noch das typedef TCHAR, das entweder ein WCHAR ist (wenn Unicode aktiv ist) oder ein CHAR. Alle WinAPI "Funktionen", die mit Text arbeiten, sind in Wahrheit ebenfalls nur Makros die, je nachdem ob UNICODE defined ist oder nicht, entweder zur *W oder *A Variante der jeweiligen Funktion werden. Die Character Set Einstellung in den Project Properties tut lediglich entweder UNICODE definen oder nicht. Das ist alles.

Der Multibyte Character String Kram ist legacy Zeug, das ich keinesfalls verwenden würde (entweder Unicode oder das Character Set auf "Not Set" stellen und dann halt nur mit ASCII arbeiten).

Ich würde unbedingt empfehlen, keine Angst vor Unicode zu haben, denn eine solche ist nicht gerechtfertigt; Unicode ist kein undurchschaubares Mysterium, im Gegenteil. Am besten vielleicht einfach mal das hier lesen: http://www.joelonsoftware.com/articles/Unicode.html
Thargan hat geschrieben:
PS: Es gibt mittlerweile VS 2015 ;)
VS 2015 läuft erst ab Windows 8 bzw. 10
Das Upgrade von Windows 7 auf Windows 10 ist (im Moment noch) kostenlos... ;)
Thargan
Beiträge: 14
Registriert: 06.12.2014, 19:08

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Thargan »

Also ich muss schon sagen dot, Du hast mir ziemlich weiter geholfen. Dafür vielen Dank.
Auch Krishty danke ich, immerhin hat er sich bemüht. ;-)

Aber durch Euch beide bin ich nun ein ganzes Stück weiter und darf sämtliche Änderungen nochmal ändern.

Vor allem aber habt ihr mich angeregt mich selbst schlauer zu machen und habe mich daran erinnert, dass es ja eine "Hilfe" gibt und werde die demnächst durchforsten.
Dumm nur, da ich den halben Tag nach Hilfen im Netz gesucht habe und irgendwas über die Libs, die es gibt, erfahren wollte, dabei sollte ich in der Hilfe wohl was finden.

Das mit dem Unicode ist halt so, dass ich es damals nicht brauchte und niemals über das TEXT() Makro gestolpert bin.
Für mich existierte Unicode einfach nicht, heute rächt sich das.

Aber Angst ? Nö, ich wusste erstmal nur nicht was los ist...

Ach ja, Windows 10. Ich bin nicht sicher, ob ich es mag.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von dot »

Ich persönlich halte es so, dass ich in meiner Software überall durchgehend mit UTF-8 Strings arbeite, die ich ganz normal in std::string und char Arrays ablege. Erst direkt an der Stelle, wo ein String an eine WinAPI Funktion übergeben werden soll oder von einer WinAPI Funktion kommt, konvertiere ich den String nach bzw. von UTF-16 (WCHAR) und verwende dann explizit die *W Funktionen. Alternativ könnte man auch einfach direkt überall mit UTF-16 und wchar_t bzw. char16_t arbeiten und sich das Konvertieren sparen. UTF-8 hat Vorteile was Portabilität und Kompatilität des Code angeht. Das TEXT() Makro und seine Konsorten sind heutzutage völlig obsolet. Die waren dazu gedacht, Code zu schreiben, der einmal für Unicode mit WCHAR Strings und einmal für Ansi mit CHAR Strings kompiliert werden kann. Einfach durchgehend explizit Unicode verwenden und fertig. An dieser Stelle sei auch VS 2015 nochmal erwähnt, das supported nämlich – im Gegensatz zu seinen Vorgängern – C++11 UTF-8, UTF-16 und UTF-32 Stringliterale und die entsprechenden Charactertypen:

Code: Alles auswählen

const char* my_string_utf8 = u8"hello world";
const char16_t* my_string_utf16 = u"hello world";
const char32_t* my_string_utf32 = U"hello world";
...;)


Was Windows 10 betrifft: Realistisch betrachtet, wirst du nicht ewig an Windows 7 festhalten können (ich persönlich kann nicht nachvollziehen, wieso man das würde tun wollen, wo neure Windowsversionen doch rein technisch schon wesentlich überlegen sind, aber ok) und dann macht es imo doch recht viel Sinn, jetzt umzusteigen, wo es noch nichts kostet... ;)
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Spiele Programmierer »

Ich verwende innerhalb meiner Software auch konsequent UTF-8 Strings (allerdings in einer eigenen String-Klasse). UTF-8 hat auch den Vorteil, dass es weniger Speicherplatz benötigt und man nicht so leicht in Falle fällt, dass man alle Zeichen jehenseits der BMP (Codepoints >= 65536) für bestimmte Funktionen einfach ausschließt. UTF-8 Everywhere.

Wenn du eine garantiert Windows-only Anwendung schreibst (das scheint je der Fall zu sein), ist es allerdings wchar_t überall unter Umständen das kleinere Übel.

Offtopic bezüglich Windows:
Ich hatte auch vor auf Windows 10 umzusteigen. Wenn auch bloß wegen der Kompatibilität zukünftiger Anwendungen. Seit allerdings die Sache mit dem katastrophalen Datenschutzbedingungen des neuen Betriebssystems bekannt wurde, habe ich meine Meinung geändert. Ich bleibe jetzt doch lieber erstmal bei Windows 8.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von dot »

Spiele Programmierer hat geschrieben:Seit allerdings die Sache mit dem katastrophalen Datenschutzbedingungen des neuen Betriebssystems bekannt wurde, habe ich meine Meinung geändert.
Also ich sehe, was Datenschutz betrifft, keinen wirklichen Unterschied zwischen Windows 8, Windows 10 und dem üblichen Android/iOS, insbesondere kann ich nicht nachvollziehen, wo genau da bei Windows 10 im Vergleich "katastrophale" Zustände herrschen sollten!?
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Spiele Programmierer »

Hä? Windows 10 nimmt sich das Recht heraus, alle deine Daten abzugreifen und sie auch ggf. wohl an Dritte weiterzugeben. Soviel zum Rechtlichen. Aber auch in der Praxis passiert das tatsächlich, wenn man als Benutzer nicht aktiv wird. Ich möchte weder meinen Browserverlauf noch meine Urlaubsfotos mit Microsoft teilen. Ein besseres Personenprofil kann man ja fast nicht kriegen. Zum Beispiel der Browserverlauf würde sowohl alle meine Hobbys und Interessen als auch Geschäftliches beinhalten.

Selbst wenn man die Funktionen deaktivieren kann (die Datenschutzbedinungen selbst kann man nicht "deaktivieren"), so finde ich ein derartiges Produkt nicht unterstützenswert. Es ist ein Schritt in die völlig falsche Richtung, auch wenn sich viele einfache Menschen durch den Trick mit dem begrenzten :!: kostenlosen Update locken lassen. Man muss sich auch nicht unbedingt am Schlimmsten orientieren und daraus schließen, dass es jetzt jeder machen soll.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Krishty »

dot hat geschrieben:
Thargan hat geschrieben:
PS: Es gibt mittlerweile VS 2015 ;)
VS 2015 läuft erst ab Windows 8 bzw. 10
Das Upgrade von Windows 7 auf Windows 10 ist (im Moment noch) kostenlos... ;)
Ich betreibe VS 2015 erfolgreich auf drei Windows-7-Rechnern und es wurde bei der Installation nirgends irgendwie gemeckert …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Thargan
Beiträge: 14
Registriert: 06.12.2014, 19:08

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Thargan »

Krishty hat geschrieben:
dot hat geschrieben:
Thargan hat geschrieben:
PS: Es gibt mittlerweile VS 2015 ;)
VS 2015 läuft erst ab Windows 8 bzw. 10
Das Upgrade von Windows 7 auf Windows 10 ist (im Moment noch) kostenlos... ;)
Ich betreibe VS 2015 erfolgreich auf drei Windows-7-Rechnern und es wurde bei der Installation nirgends irgendwie gemeckert …
Dann streut MS wohl dieses Gerücht, damit man auf Windows10 umsteigt.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von dot »

Spiele Programmierer hat geschrieben:Hä? Windows 10 nimmt sich das Recht heraus, alle deine Daten abzugreifen und sie auch ggf. wohl an Dritte weiterzugeben.
Sorry, aber, mit Verlaub, das ist Bullshit. Natürlich "sammelt" es gewisse Daten, die nötig sind, um gewisse Services zu ermöglichen; ich sehe in den dort gesammelten Daten aber keinen Unterschied beispielsweise zu dem, was Google, Facebook und alle Anderen in ihren Services schon seit Jahren tun, insbesondere seh ich keinen wesentlichen Unterschied zu dem, was auch schon in Windows 8 "gesammelt" wurde...
Thargan hat geschrieben:
Krishty hat geschrieben:
dot hat geschrieben:
Thargan hat geschrieben:
PS: Es gibt mittlerweile VS 2015 ;)
VS 2015 läuft erst ab Windows 8 bzw. 10
Das Upgrade von Windows 7 auf Windows 10 ist (im Moment noch) kostenlos... ;)
Ich betreibe VS 2015 erfolgreich auf drei Windows-7-Rechnern und es wurde bei der Installation nirgends irgendwie gemeckert …
Dann streut MS wohl dieses Gerücht, damit man auf Windows10 umsteigt.
Nein, Microsoft streut keine Gerüchte. Microsoft sagt, dass es keinen Support für VS2015 auf Windows 7 gibt. Das heißt nicht, dass es dort nicht trotzdem mehr oder weniger gut funktionieren kann...
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Tiles »

Sorry, aber, mit Verlaub, das ist Bullshit. Natürlich "sammelt" es gewisse Daten, die nötig sind, um gewisse Services zu ermöglichen; ich sehe in den dort gesammelten Daten aber keinen Unterschied beispielsweise zu dem, was Google, Facebook und alle Anderen in ihren Services schon seit Jahren tun, insbesondere seh ich keinen wesentlichen Unterschied zu dem, was auch schon in Windows 8 "gesammelt" wurde...
Hm, Win 10 und Datenschutz wäre fast nen eigenen Fred wert ^^

Der Unterschied ist: das eine ist dein OS für das du bezahlt hast, das andere sind kostenlose Dienste die du wahlweise nutzen kannst.

Es ist zwar richtig dass auch schon Win 7 Daten gesammelt und an Microsoft weitergeleitet hat. Das konnte man aber abstellen. Und Win 10 stösst hier in ganz neue Dimensionen vor. Selbst wenn du alles abstellst wo du über die Oberfläche rankommst, die sogenannten Telemetriedaten werden weiter gesendet. Ohne weitere Hinweise was da genau telemetriert wird. Da hilft dann nur ein tiefer Eingriff in die Registry (zumindest schon mal recherchiert und wo gesehen). Der dann vermutlich mit dem nächsten (Zwangs-) Update wieder behoben wird.

Die absolute Frechheit ist übrigens dass die Telemetriegeschichte heimlich still und leise auch auf Win 7 und 8 installiert wurde. Als sogenannte empfohlene Updates, ohne nähere Beschreibung was die eigentlich tun. Wer checkt schon jedes Update darauf was denn genau installiert wird? Schaut euch mal folgende Updates näher an:

KB3068708
KB3075249
KB3080149
KB3092627

So nennt Microsoft das: https://support.microsoft.com/de-de/kb/3068708
So nennt das das PC Magazin: http://www.pc-magazin.de/news/windows-u ... 94847.html

Ich nenne das eine bodenlose Frechheit. Und empfehle auf Win 7 und 8 die Updates zu deinstallieren und dann auszublenden. Und ab da jedes Update genauestens unter die Augen zu nehmen, und zu prüfen was Microsoft uns denn da wieder unterjubeln will. Denn die werde es wieder versuchen.

Wie man das unter Win 10 loswird weiss ich leider nicht, auch wenn ich da schon ein wenig geschaut habe. Und ich will es auch in naher Zukunft gar nicht rausfinden wollen müssen. Ich bleibe erst mal bei Win 7. Auf meinem Lappy hat das Upgrade eh nicht funktioniert, der Monitor war nur noch maximal so hell wie im dunkelsten Energiesparmodus, und hat mir zwei Tage Gebastel beschert bis ich wieder Win 7 drauf hatte.

Miniweich hat jedenfalls mein gesamtes Vertrauen in das Updateverfahren nachhaltigst geschädigt. Und ich werde einen Teufel tun mir dann auch noch Zwangsupdates mit Win 10 einzufangen. Ich warte bis die da nachbessern.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von dot »

Nun, zwischen "Microsoft sammelt Telemetriedaten, die verschlüsselt übertragen und anonymisiert werden" und "Microsoft durchstöbert meine Browserhistory und gibt meine Urlaubsfotos an Dritte weiter" gibt's dann doch einen kleinen Unterschied...

Als jemand, der immer schon freiwillig an User-Experience Improvement Programmen teilgenommen hat, ist mir das mit der Telemetrie herzlich egal. Wenn jemand dadurch seine Privatsphäre gefährdet sieht, dann muss er natürlich drauf verzichten. Natürlich muss er auch auf Google, Facebook, Amazon, Smartphones, Kreditkarten und so ziemlich sonst alles verzichten, am besten lebt er allein im Wald; ist auch ein Weg. Im hab für mich halt beschlossen, das 21. Jahrhundert stattdessen mit offenen Armen willkommen zu heißen...
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Tiles »

Im hab für mich halt beschlossen, das 21. Jahrhundert stattdessen mit offenen Armen willkommen zu heißen...
Na wenn das ausspionieren sämtlicher verfügbarer Daten das neue Jahrhundert ausmacht dann will ich bitte nicht mehr auf diesem Planeten leben ;)
Nun, zwischen "Microsoft sammelt Telemetriedaten, die verschlüsselt übertragen und anonymisiert werden" und "Microsoft durchstöbert meine Browserhistory und gibt meine Urlaubsfotos an Dritte weiter" gibt's dann doch einen kleinen Unterschied...
Das ist imho gar nicht der Punkt. Der Punkt ist die Freiwilligkeit, die Selbstbestimmung über meine Daten. Du hast freiwillig an der Telemetrieerfassung teilgenommen. Ich benutze freiwillig Google. Mir haben sie aber das Telemetriezeug unter Win 7 fast unbemerkt untergeschoben und ganz selbstverständlich aktiviert. Und es war nur Zufall dass ich es überhaupt gemerkt habe. Und als Win 10 User kannst du schon gleich am Anfang alles falsch machen wenn du der Expressinstallation zustimmst. Denn da verstecken sich noch viel mehr Sachen als nur Telemetriedaten.

Der Unterschied ist eben, ich brauche kein Google und kein Facebook benutzen. Und wenn ich es tue weiss ich um die Gefahren und kann Gegenmassnahmen ergreifen. Bei meinem Betriebssystem bleibt mir aber gar nichts anderes übrig. Das kann ich nicht selektiv nutzen. Da gibts auch keine Gegenwehr. Und da hat gefälligst Microsoft die Griffel von meinen Daten zu lassen.

Diese ganzen Gimmicks die da jetzt urplötzlich und angeblich gar nicht mehr ohne Userdaten auskommen haben jedenfalls auch schon davor prima funktioniert, ganz ohne gesammelte Userdaten.
Natürlich muss er auch auf Google, Facebook, Amazon, Smartphones, Kreditkarten und so ziemlich sonst alles verzichten, am besten lebt er allein im Wald; ist auch ein Weg.
Das ist jetzt wieder zu extrem ^^

Aber man muss sich eben nicht alles bieten lassen was einem die Herren vor den Latz knallen. Für mich ist da jedenfalls grade eine Schmerzgrenze erreicht mit Win 10. Und ich hoffe mal dass die von der EU gehörig eins aufs Dach kriegen :)

Ich verstehe natürlich genau was du meinst. Der Preis für die Nutzung Googles sind eben meine Daten. Und das machen inzwischen alle Onlinedienste. Dass es alle tun heisst aber noch lange nicht dass es richtig ist. Nur dass die Banditen bisher damit durchgekommen sind. Denn eigentlich ist schon Google Analytics nicht Datenschutzkonform. Die kleinen Webseitenbetreiber hängt man für die Nutzung. Google hingegen darf weiter ungestraft sammeln. Hach.

Das ist wie der Frosch den man in heisses Wasser schmeisst. Der hüpft raus. Wenn du aber die Temparatur langsam steigert bleibt er sitzen bis er gar ist. Und genau das haben wir hier gerade mit den ganzen Datenkraken. Die Jungs sammeln ja schon seit Jahren, und mir is noch nix passiert, also bleiben wir mal sitzen. Bis es halt dann doch zu spät ist irgendwann.

Schon aus kleinen Datensätzen lassen sich sehr aussagekräftige und für die Wirtschaft unglaublich interessante Profile erstellen. Um dann eben sagen zu können, ah, ein Dauergast in Apotheken, den stellen wir nicht ein. Der kriegt keine Versicherung. Der kriegt keinen Kredit. Da kann schon das falsche Stadteil langen. Da gibts extra Scoringsysteme für. Und jetzt lass mal einen Einbrecher dein Bewegungsprofil und deine ungefähre Vermögenslage kennen, damit er weiss ob es sich lohnt, und wann er in aller Seelenruhe bei dir einsteigen kann ;)

Das alles passiert heute schon. Das ist ja das doowe dran. Du kannst vorher nie sagen in welcher Form deine Daten dann wirklich verknüpft und genutzt werden. Und glaub mir, was mal im Umlauf ist wird auch genutzt. Also sollte man wenigstens versuchen den Datensatz der über einen im Umlauf ist so klein wie möglich zu halten. Das ist zumindest meine Meinung dazu :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Spiele Programmierer »

@Dot
Naja, nach diversen Quellen ist das aber so. Ich weiß auch nicht was Verschlüsselung(ist es überhaupt?) hier ändert und anonymisiert ist es wohl auch nicht.
Ein paar Quellen:
http://www.sueddeutsche.de/digital/windows-vertrauter-spion-1.2594765 hat geschrieben:Innerhalb diverser Menüs im installierten Betriebssystem können die Nutzer immerhin folgende Überwachungstechnik abschalten: Aufnahme und Übermittlung von Sprache, Tastendruck-Rhythmus, aktuellem und ehemaligen Standort des Nutzers, sämtlicher Internet-Daten einschließlich besuchter Webseiten - und dazu kommt das automatische Verbinden mit offenen Internet-Hotspots.
http://winfuture.de/news,88235.html. Hier steht des Weiteren, dass Netzwortkennwörter und das Festplattenkennwort hochgeladen wird.

Weiterhin ist dort von einer Werbe-ID und einem Microsoft-Konto die Rede. Wenn man einen Blick in die offiziellen Aussagen von Microsoft wirft, ist dort ebenfalls immer personenbezogenen und persönlichen Daten die Rede. Von "anonymisiert", kann man wohl nicht reden.
Als jemand, der immer schon freiwillig an User-Experience Improvement Programmen teilgenommen hat, ist mir das mit der Telemetrie herzlich egal. Wenn jemand dadurch seine Privatsphäre gefährdet sieht, dann muss er natürlich drauf verzichten. Natürlich muss er auch auf Google, Facebook, Amazon, Smartphones, Kreditkarten und so ziemlich sonst alles verzichten, am besten lebt er allein im Wald; ist auch ein Weg. Im hab für mich halt beschlossen, das 21. Jahrhundert stattdessen mit offenen Armen willkommen zu heißen...
'Es ist ja schön wenn du das alles toll findest und gerne deine persönlichen Daten mit "offenen Armen" mit Microsoft teilst. Warum 21. Jahrhundert bedeuten soll, dass wie unsere Privatssphäre aufgeben müssen, verstehe ich nicht und scheint mehr eher eine schreckliche Vorstellung. Ich kann diese Einstellung nicht verstehen. Wie gesagt ist ein schlimmeres Beispiel kein Freibrief. Die Daten der Dienste sind viel selektivier (wie häufig ist man zum Beispiel auf Amazon) und außerdem leicht weitgehend zu vermeiden.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Krishty »

So sehr ich diese Big-Data-Schweinereien auch verachte, hat dot in einem Punkt absolut recht: Windows 10 erhebt kaum mehr Daten als Windows 8 oder Android oder iOS es schon seit Jahren tun.

Wer sich jetzt empört, aber zugleich ein Smartphone besitzt, ist mit der Wut einfach zu spät und an der falschen Adresse. Wenn ihr Windows 10 nicht wollt (ich auch nicht), installiert es eben nicht (ich auch nicht), aber seid halt konsequent und schmeißt euer Smartphone ebenfalls weg (hab’ auch keins). Und nutzt kein Chrome mehr (die übertragen seit Jahren jeden eurer Tastendrücke an Google und haben längst Profile, um euch am Tippen zu erkennen; kein Skandal, dass Microsoft das selbe tut.)

Und wenn euch dann einfällt, dass ihr das soooo radikal gar nicht wollt, und dass es ohne WhatsApp irgendwie zu langweilig ist, und ohne Cloud irgendwie zu anstrengend, dann tragt es eben mit Fassung wie dot es tut.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Spiele Programmierer »

Ich trage das absolut mit Fassung. Allerdings hat Dot gefragt, warum man nicht die aktuelle Windows-Version nutzen sollte und ich habe das beantwortet. Ich besitze übrigens auch kein Smartphone und verachte hauptsächlich aus "politischen Gründen" Chrome und benutze lieber Firefox.

Aber das es einen "Keylogger" in Chrome gibt, ist mir aber tatsächlich neu. Woher hast du das?
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Krishty »

Omnibox? Der sucht doch, während du tippst.

Edit: Achso; das klang jetzt, als ob auch das Tippen in Webseiten aufgezeichnet würde. Nein, davon weiß ich nichts. Da scheinen auch zum Glück noch viele Leute ein Auge drauf zu haben, jedenfalls dem #Aufschrei nach, als OK, Google in den Chromium gemerged wurde.

Aber zumindest was Omnibox und Google-Dienste betrifft, wandert wohl jeder Anschlag rüber. Nicht zuletzt basiert ja ihre Bot-Erkennung auf dem Timing der Klicks und Tastaturanschläge.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Thargan
Beiträge: 14
Registriert: 06.12.2014, 19:08

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Thargan »

Mein Chinesisch habe ich jetzt weitestgehend im Griff und das hauptsächlich durch Eure Hilfe.

Deshalb wollte ich hiermit nochmal "Danke" sagen.


Ich habe meine Projekte weitestgehend für "variable Verwendung" des Zeichensatz umgeschrieben, allerdings fand ich für einige Funktionen kein Makro. Für itow itoa z.B.

Habe jetzt keine Chinazeichen mehr und wenn doch weiss ich warum.

Einzig schwer tue ich mich mit der Auswahl von Char/String Funktionen, da ich nicht immer alle finde, bzw keine Übersicht darüber habe.
Mit VS 2013, aber auch 2015 erhalte ich keinen Zugriff zu MSDN.

Gibt es eine Übersicht der Standardbibliotheken und ihrer Funktionen ? Wo ?

Grüsse
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Schrompf »

Google nach der ASCII-Funktion mit Zusatz "MSDN", da findest Du die Microsoft-spezifische Seite, die zumeist auch gleich das Widestring-Äquivalent nennt.

Ich persönlich bin der Meinung, Du hast Dich für die falsche Option entschieden. Meine Ideallösung ist zugegebenermaßen etwas Linux/OSX-beeinflusst und lautet "UTF8, soweit möglich, Dateipfade als boost::filesystem::path"
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Biolunar
Establishment
Beiträge: 154
Registriert: 27.06.2005, 17:42
Alter Benutzername: dLoB

Re: Nicht gewolltes Chinesisch auf dem Win7-Bildschirm

Beitrag von Biolunar »

Mit modernem C++ ist das Konvertieren zwischen UTF8 <-> UTF16 auch nicht schwierig:

Code: Alles auswählen

#include <locale> // wstring_convert
#include <codecvt> // codecvt_utf8_utf16

::std::wstring to_utf16(::std::string const& str)
{
	::std::wstring_convert<::std::codecvt_utf8_utf16<wchar_t, 0x10ffff, ::std::little_endian>> c;
	return c.from_bytes(str);
}

::std::string to_utf8(::std::wstring const& wstr)
{
	::std::wstring_convert<::std::codecvt_utf8_utf16<wchar_t, 0x10ffff, ::std::little_endian>> c;
	return c.to_bytes(wstr);
}
Damit kann man recht bequem WinAPI Funktionen aufrufen:

Code: Alles auswählen

::MessageBoxW(nullptr, to_utf16(u8"Yo.").c_str(), to_utf16(u8"Blubb").c_str(), 0);
Antworten