| Autor |
Beitrag |
Heiko
      
Beiträge: 3169
Erhaltene Danke: 11
|
Verfasst: Do 22.06.06 14:56
Hallo,
ich verwende jetzt eine WinAPI, die laut MSDN erst ab Windows CE 2.1 und jünger läuft. Welche OS-Versionen wären das? XP ja, ME, 98 und 95 nicht. Mir würde es auch schon reichen, wenn ich die Versionsnummern wüsste für:
Delphi-Quelltext 1: 2: 3:
| if (Win32Platform=2) and (Win32MajorVersion=5) and (Win32MinorVersion=1) then |
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Do 22.06.06 16:53
Ähm, die ist schon klar, dass WinCE Windows für PDAs ist?
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
Heiko 
      
Beiträge: 3169
Erhaltene Danke: 11
|
Verfasst: Do 22.06.06 17:00
Jupp, aber zu der WinAPI die ich nutzte, steht als mindestanforderung nun einmal WinCE (und ein Kommentar, warum es unter ME/98/95 nicht funktioniert, während es unter XP funktioniert  ).
|
|
Neidhard von Reuental
      
Beiträge: 268
XP
BDS 2006 Prof
|
Verfasst: Do 22.06.06 17:43
Wenn Du mit Delphi programmierst wirt es auch nie unter Windows CE funktionieren. Kannst Dir diese Prfüfung also sparen.
|
|
Heiko 
      
Beiträge: 3169
Erhaltene Danke: 11
|
Verfasst: Do 22.06.06 17:51
 Dann hohle ich eben meine Beweise raus  : MSDN siehe hier und der Beweis das die API funktioniert siehe hier (die Alpha).
|
|
Neidhard von Reuental
      
Beiträge: 268
XP
BDS 2006 Prof
|
Verfasst: Do 22.06.06 19:32
Mein Emulator bietet keine WinCE version an, kann es also nicht testen. Hast Du es denn selber schon auf einem Gerät mit WinCE getestet?
|
|
Heiko 
      
Beiträge: 3169
Erhaltene Danke: 11
|
Verfasst: Do 22.06.06 19:47
Ne, ich hab nur XP und 95. Mit 98 habe ich heute in der Schule getestet. Die Ergebnisse stimmen mit dem Kompatabilitätsmodus überein.
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Do 22.06.06 20:30
Bloß weil die API-Funktion unter CE existiert, heißt das nicht, dass dein Programm unter CE läuft. Ist schließlich ein anderer Prozessor. Außerdem haben CE-Programme glaube ich (korrigiert mich wenn ich mich irre) einen anderen Header.
Wenn das steht: WinCE und WinXP, dann läuft es unter CE und höher, also alle PocketPC-Versionen, und unter XP. CE ist eine völlig andere Produktlinie.
Da im MSDN steht WinCE, sollte es auch nur unter CE laufen. Seltsam, wenns unter XP läuft...
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Zuletzt bearbeitet von Timosch am Do 22.06.06 20:35, insgesamt 1-mal bearbeitet
|
|
Heiko 
      
Beiträge: 3169
Erhaltene Danke: 11
|
Verfasst: Mi 05.07.06 20:03
Mhm, ich geb mich geschlagen  . Bei dem MSDN-Suchergebnis habe ich danach ausschau gehalten, wo das W dran ist. Ich hab zwar beim "normalen" vorbeigeguckt, aber naja, bin da nicht weiter drauf eingegangen. Ich hätte vlt. die Bemerkung nicht gleich vergessen sollen *g*.
| Zitat: | Unicode
Implemented as FindFirstFileW (Unicode) and FindFirstFileA (ANSI). Note that Unicode support on Windows Me/98/95 requires Microsoft Layer for Unicode. |
welche mindestabfrage erfordert das? Denn ich weiß nicht in wie weit NT etc. Unterstützt wird (und Vista  ).
|
|
Bernhard Geyer
      
Beiträge: 721
Erhaltene Danke: 3
|
Verfasst: Fr 07.07.06 22:32
Die W-WinAPI-Funktionen gibt es i.d.R. ab Windows NT (NT, 2000, XP, 2003, Vista, ...). Den Microsoft Layer for Unicode kannst Du vergessen da der die Aufrufe unter Win9x/ME nur auf die A-Versionen der API-Funktionen umbiegt (Da nimmst Du besser die TNTWare-Controlls.
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Fr 07.07.06 22:48
Bernhard Geyer hat folgendes geschrieben: | | Den Microsoft Layer for Unicode kannst Du vergessen da der die Aufrufe unter Win9x/ME nur auf die A-Versionen der API-Funktionen umbiegt (Da nimmst Du besser die TNTWare-Controlls. |
Die (externen Controls) nimmt er doch ohnehin besser, wenn er mit Delphi programmiert, weil die VCL auch unter NT ff. kein Unicode kapiert 
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Fr 07.07.06 22:55
und die TNTs können auch nur da Unicode, wo es Windows auch gut kann, offizell können sie es unter Win9.x gar nicht
_________________ Programmers never die, they just GOSUB without RETURN
|
|
Bernhard Geyer
      
Beiträge: 721
Erhaltene Danke: 3
|
Verfasst: Sa 08.07.06 08:32
tommie-lie hat folgendes geschrieben: | Die (externen Controls) nimmt er doch ohnehin besser, wenn er mit Delphi programmiert, weil die VCL auch unter NT ff. kein Unicode kapiert  |
Nicht die VCL ist das Problem sondern die von Borland gelieferten WinAPI-Wrapper Komponenten wie TButton, TEdit, .... Wenn es ein Grundsätzliches Problem wäre könnten TNTWare oder die Elpack-Komponenten ja auch kein Unicode. Und das ElPack kann Unicode sogar unter Win9x/ME wo selbst .NET scheidert.
|
|
Heiko 
      
Beiträge: 3169
Erhaltene Danke: 11
|
Verfasst: Sa 08.07.06 09:07
Ich hab mir einfach mal die Abfrage der TNT-Controls angeguckt, welche Abfrage die nehmen. Es war mal wieder zu leicht *g*:
Delphi-Quelltext 1:
| Win32PlatformIsUnicode := Win32Platform = VER_PLATFORM_WIN32_NT; |
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Sa 08.07.06 13:20
Bernhard Geyer hat folgendes geschrieben: | | Nicht die VCL ist das Problem sondern die von Borland gelieferten WinAPI-Wrapper Komponenten wie TButton, TEdit, .... |
... die Teil der Visual Component Library sind. Richtig, es ist nicht die VCL selbst, es ist der Inhalt der VCL. Die drei Buchstaben sind komplett unschuldig.
| Bernhard Geyer hat folgendes geschrieben: | | Wenn es ein Grundsätzliches Problem wäre könnten TNTWare oder die Elpack-Komponenten ja auch kein Unicode. Und das ElPack kann Unicode sogar unter Win9x/ME wo selbst .NET scheidert. |
Diese Komponenten (insbesondere wohl letztere) benutzen "lediglich" eigene Zeichenroutinen. Von Datentypen wie TCaption können sie dennoch keinen Gebrauch machen, da dieser nunmal ein Ansi-String ist. Klar kann man da UTF8-Zeichen unterbringen, aber dann bräuchte ich ja zusätzlich auch noch allerhand Konvertierungs-Infrastuktur.
Ich weiß nicht wie "tief" TNTControls und ElPack ansetzen, aber ich denke, daß es "sehr tief" ist, denn dort, wo es in der VCL anfängt, grafisch zu werden, hört die Unicode-Unterstützung auf. Ich kann also nicht einfach von TCustomButton ableiten, weil TCustomButton bereits ein Interface definiert, das ausschließlich Ansi spricht.
So kann ich schon nicht von TControl ableiten, weil bereits TControl die Properties Caption und Text mit dem Typ TCaption bereitstellt. Während diese beiden noch Protected sind und ich sie in einer Ableitung durch UCaption und UText ersetzen könnte, ist das Property Hint vom Typ String bereits in TControl published. Diese Sichtbarkeit kriege ich nicht mehr weg und hätte entweder nur einen Ansi-Hint, zwei Hint-Felder (Hint und UHint) parallel, oder msste auf UTF-8 ausweichen, mit der Notwendigkeit zu performanten Konvertierungsmöglichkeiten, weil die meisten Unicode-Systemfunktionen (sprich: alle W-Funktionen) nach wie vor gerne 2Byte-Zeichen hätten und keine 1Byte-Zeichen.
Und mal ehrlich, jede Eingabe und jede Ausgabe vor jeder Operation von UTF-8 nach UTF-16 (oder UCS-2? ich weiß grad' nicht wie die W-Funktionen die Bytes interpretieren) und zurück zu konvertieren ist nicht das, was ich von einem Framework erwarte, das mir Unicode-Fähigkeit bieten soll. Abgesehen davon daß die RTL immer noch nicht sonderlich WideString-freundlich ist, was beispielsweise ein (zum Beispiel bei Funktionsparametern sinnvolles) Reference Counting angeht.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Bernhard Geyer
      
Beiträge: 721
Erhaltene Danke: 3
|
Verfasst: Sa 08.07.06 20:46
Das Elpack setzt früh an um auch ein Theming zu realisieren das unabhängig vom XP-Theming laufen könnte.
Auch ist es kein Problem publisched Properties neu als Widestring zu veröffentlichen. Als ist der Umweg über UTF8 oder WideProperty nicht nötig. Selbst Unicode-Hints bekommen die Hint (zusätzlich auch noch mit der Möglichkeit der HTML-Formatierung).
Referenzcounting vermisse ich nicht. Selbst bei Ansi-Strings ist es performancetechnisch von Vorteil die nicht veränderlichen Parameter als Const zu definieren. Bei Widestring ist es doppelt von Vorteil.
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Sa 08.07.06 21:37
Bernhard Geyer hat folgendes geschrieben: | | Referenzcounting vermisse ich nicht. Selbst bei Ansi-Strings ist es performancetechnisch von Vorteil die nicht veränderlichen Parameter als Const zu definieren. Bei Widestring ist es doppelt von Vorteil. |
Mir ist nicht bekannt, daß es etwas wie const returntype func(sometype param); auch in DelphiLanguage gibt.  (mir ist bewusst daß es auch in C(++) keine sinnvolle Möglichkeit für Pascal-ähnliche Compiler Magic gibt, daß also ein "const WideString" als Ergebnistyp kein echter Ersatz wäre)
Außerdem denke ich, daß es noch andere Verwendung für Referenzzählung gibt, zum beispiel bei temporären Puffern bei denen ungewiss ist, ob sie sich im Laufe der Funktion ändern werden oder nicht (manchmal kommt man mit einem const parameter auch nicht weiter, ohne den String zu kopieren).
Danny Thorpe ist/war nicht grundlos der Meinung, daß reference counting ein notwendiges Merkmal von neuen WideStrings sein soll, als es darum ging, sie in einem 64bit-Compiler zusammen mit einer Unicode-VCL "richtig" zu implementieren und nicht aus COM-Kompatibilität als BSTR. Ob sich die Sicht der Dinge zusammen mit dem Inhaber von Delphi geändert haben, weiß ich nicht.
Bernhard Geyer hat folgendes geschrieben: | | Auch ist es kein Problem publisched Properties neu als Widestring zu veröffentlichen. Als ist der Umweg über UTF8 oder WideProperty nicht nötig. Selbst Unicode-Hints bekommen die Hint (zusätzlich auch noch mit der Möglichkeit der HTML-Formatierung). |
Mir war nicht bekannt, daß man geerbte Identifiers mit anderer Signatur aber gleichem Namen erneut deklarieren kann.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|