Problem bei kompilieren von ZEOS 7.0.3 für WinCE
Problem bei kompilieren von ZEOS 7.0.3 für WinCE
Hallo zusammen,
ich habe mit Lazarus RC1.0 und den Zeos-Kompomenten 7.0.3-stable (sqllite3) eine kleine Anwendung für Win32 geschrieben,
die sich ohne Probleme kompilieren lässt und auch unter Windows XP läuft.
Jetzt habe ich den Compiler auf WinCE mit arm-CPU umgestellt und erhalte die Fehlermeldung
....src/core/ZCompatibility.pas(430,33) Error Identifizier not found "AnsiToStringEx"
Kennt jemand dieses Problem oder was mach ich falsch, andere Anwendungen ohne die Zeos-Komp.
lassen sich ohne Probleme auf CE umstellen und laufen auch.
Gruß
pcler
ich habe mit Lazarus RC1.0 und den Zeos-Kompomenten 7.0.3-stable (sqllite3) eine kleine Anwendung für Win32 geschrieben,
die sich ohne Probleme kompilieren lässt und auch unter Windows XP läuft.
Jetzt habe ich den Compiler auf WinCE mit arm-CPU umgestellt und erhalte die Fehlermeldung
....src/core/ZCompatibility.pas(430,33) Error Identifizier not found "AnsiToStringEx"
Kennt jemand dieses Problem oder was mach ich falsch, andere Anwendungen ohne die Zeos-Komp.
lassen sich ohne Probleme auf CE umstellen und laufen auch.
Gruß
pcler
Re: Problem bei kompilieren von ZEOS 7.0.3 für WinCE
ich habe mal Lazarus auf Version 1.0.6 hochgerüstet.
Das Problem bleibt leider bestehen....
Beim Durchsuchen der Zeos-Source-Files habe ich Funktion "AnsiToStringEx" in ZEncoding.pas gefunden.
Wird aber nur bedingt compiliert. Ich kenne leider nicht die Zusammenhänge, wann was eingebunden wird.
Hat damit jemand Erfahrung?
Gruß
pcler
Das Problem bleibt leider bestehen....
Beim Durchsuchen der Zeos-Source-Files habe ich Funktion "AnsiToStringEx" in ZEncoding.pas gefunden.
Wird aber nur bedingt compiliert. Ich kenne leider nicht die Zusammenhänge, wann was eingebunden wird.
Hat damit jemand Erfahrung?
Gruß
pcler
Re: Problem bei kompilieren von ZEOS 7.0.3 für WinCE
ich bin jetzt soweit durchgestiegen, dass ich die Unicode-Unterstützung ausschalten
muss.
Wie funktioniert das bei WInCE und was gibt es dabei zu beachten?
Gruß
pcler
muss.
Wie funktioniert das bei WInCE und was gibt es dabei zu beachten?
Gruß
pcler
-
- Beiträge: 93
- Registriert: Di 17. Apr 2012, 22:41
Re: Problem bei kompilieren von ZEOS 7.0.3 für WinCE
Hi pcler,
weder noch ))):
Also die function sollte eigentlich nicht persistent sein. Mein Problem: Kann es nicht selber testen ):
Also unter FPC 2.6.x und drunter, sollten mit LCL eigenlich nur die LConvEncoding Funtionen erreichbar sein. Mir scheint da fehlt ein {$IFDEF WinCE}??
AFAIK sollte mit WinCE nur im UTF8-Modus gearbeitet werden können. Lieg ich da richtig? Ich weis ich habe die Unit ZEncoding.pas und ZComaptibility.pas mit ner Menge {$ifdef ..}'s versehen. Kannst du mal drüber schauen, wo da noch was fehlt? Patch wäre toll.
Gruß Michael, ZeosDevTeam
P.S. Sorry bin grad im Umzugstress, kann grad echt nicht helfen..
Edit: das könnte auch einfach in der Zeos.inc erledigt werden???
weder noch ))):
Also die function sollte eigentlich nicht persistent sein. Mein Problem: Kann es nicht selber testen ):
Also unter FPC 2.6.x und drunter, sollten mit LCL eigenlich nur die LConvEncoding Funtionen erreichbar sein. Mir scheint da fehlt ein {$IFDEF WinCE}??
AFAIK sollte mit WinCE nur im UTF8-Modus gearbeitet werden können. Lieg ich da richtig? Ich weis ich habe die Unit ZEncoding.pas und ZComaptibility.pas mit ner Menge {$ifdef ..}'s versehen. Kannst du mal drüber schauen, wo da noch was fehlt? Patch wäre toll.
Gruß Michael, ZeosDevTeam
P.S. Sorry bin grad im Umzugstress, kann grad echt nicht helfen..
Edit: das könnte auch einfach in der Zeos.inc erledigt werden???
ZeosDevTeam
-
- Beiträge: 93
- Registriert: Di 17. Apr 2012, 22:41
Re: Problem bei kompilieren von ZEOS 7.0.3 für WinCE
Kannst du mal folgendes testen?
ZeosLazarus.inc:
{$IF defined(WITH_LCONVENCODING) and ((defined(MSWINDOWS) and not defined(WinCE)) or defined(FPC_HAS_BUILTIN_WIDESTR_MANAGER))}
{$UNDEF WITH_LCONVENCODING}
{$IFEND}
dann alles recompilieren..
ZeosLazarus.inc:
{$IF defined(WITH_LCONVENCODING) and ((defined(MSWINDOWS) and not defined(WinCE)) or defined(FPC_HAS_BUILTIN_WIDESTR_MANAGER))}
{$UNDEF WITH_LCONVENCODING}
{$IFEND}
dann alles recompilieren..
ZeosDevTeam
Re: Problem bei kompilieren von ZEOS 7.0.3 für WinCE
hallo EgonHugeist,
ich hab's mal getestet und erhalte die gleiche Fehlermeldung...
ich habe mal folgendes versucht um sicher zu sein, dass WInCE auf jeden Fall greift
{$IF defined(WinCE)}
{$UNDEF WITH_LCONVENCODING}
{$IFEND}
dies führt zu folgender Fehlermeldung
ZPlainLoader.pas(189,47) incompatible type for arg no. got "pchar" ecpected "pwidechar"
dieser Fehler wurde schon in einem Forum besprochen, ich finde aber leider nicht mehr in welchem
ich hab's mal getestet und erhalte die gleiche Fehlermeldung...
ich habe mal folgendes versucht um sicher zu sein, dass WInCE auf jeden Fall greift
{$IF defined(WinCE)}
{$UNDEF WITH_LCONVENCODING}
{$IFEND}
dies führt zu folgender Fehlermeldung
ZPlainLoader.pas(189,47) incompatible type for arg no. got "pchar" ecpected "pwidechar"
dieser Fehler wurde schon in einem Forum besprochen, ich finde aber leider nicht mehr in welchem
-
- Beiträge: 93
- Registriert: Di 17. Apr 2012, 22:41
Re: Problem bei kompilieren von ZEOS 7.0.3 für WinCE
Nun denke ich hast du mich und meine Änderung falsch verstanden.
AnsiToStringEx/StringToAnsiEx ist in jedem Falle vorhanden für:
FPC2.7+
Alle Delphi-Compiler
FPC2.6 down wenn das OS Windows ist. WinCE sollte hierbei aussscheiden, da die Windows-Function MultiByteToWideChar/WideCharToMultiByte nicht existieren sollten. Ist das richtig? Habe diese info von FPC-Unit cwstring..
Also sollte WITH_LCONVENCODING für deinen FPC-Compiler und dein LCL definiert sein. Also nicht undef.
Sei so gut und teste es bitte.......
AnsiToStringEx/StringToAnsiEx ist in jedem Falle vorhanden für:
FPC2.7+
Alle Delphi-Compiler
FPC2.6 down wenn das OS Windows ist. WinCE sollte hierbei aussscheiden, da die Windows-Function MultiByteToWideChar/WideCharToMultiByte nicht existieren sollten. Ist das richtig? Habe diese info von FPC-Unit cwstring..
Also sollte WITH_LCONVENCODING für deinen FPC-Compiler und dein LCL definiert sein. Also nicht undef.
Sei so gut und teste es bitte.......
ZeosDevTeam
Re: Problem bei kompilieren von ZEOS 7.0.3 für WinCE
sorry das ich mich erst jetzt melde,
hab mal auf Lazarus 1.1 mit FPC 2.7.1 hochgerüstet, leider kann ich damit keine WinCE - Applikationen kompilieren,
und deshalb nicht testen (Lazarus ist da wohl noch im Bau). Wie man unter Lazarus 1.0 FPC 2.7 zum laufen bekommt,
habe ich leider noch nicht rausgefunden. Vieleicht kennst du ja ein Tutorial.
In der ZEncoding.pas habe ich folgendes gefunden
demmanch ist AnsiToWideAnsiToWide nur verfügbar wenn WITH_LCONVENCODING nicht definiert ist.
Für mich sieht das so aus, als würden sich UNICODE und WITH_LCONVENCODING gegenseitig ausschliessen.
hab mal auf Lazarus 1.1 mit FPC 2.7.1 hochgerüstet, leider kann ich damit keine WinCE - Applikationen kompilieren,
und deshalb nicht testen (Lazarus ist da wohl noch im Bau). Wie man unter Lazarus 1.0 FPC 2.7 zum laufen bekommt,
habe ich leider noch nicht rausgefunden. Vieleicht kennst du ja ein Tutorial.
In der ZEncoding.pas habe ich folgendes gefunden
Code: Alles auswählen
{$IFDEF WITH_LCONVENCODING}
const
ZLConvCodepages: array[0..16] of Word = (
28591, //ISO_8859_1
28592, //ISO_8859_2
1250, //WIN1250
1251, //WIN1251
1252, //WIN1252
1253, //WIN1253
1254, //WIN1254
1255, //WIN1255
1256, //WIN1256
1257, //WIN1257
1258, //WIN1258
437, //CP437
850, //CP850
852, //CP852
866, //CP866
874, //CP874
20866 //KOI8 (Russian)
);
function IsLConvEncodingCodePage(const CP: Word): Boolean;
procedure SetConvertFunctions(const CTRL_CP, DB_CP: Word;
out PlainConvert, DbcConvert: TConvertEncodingFunction);
{$ELSE}
{$IFDEF WITH_UNICODEFROMLOCALECHARS}
const
MB_PRECOMPOSED = 1; { use precomposed chars }
MB_COMPOSITE = 2; { use composite chars }
MB_USEGLYPHCHARS = 4; { use glyph chars, not ctrl chars }
MB_ERR_INVALID_CHARS = 8; { error for invalid chars }
WC_DEFAULTCHECK = $100; { check for default char }
WC_COMPOSITECHECK = $200; { convert composite to precomposed }
WC_NO_BEST_FIT_CHARS = $400; { do not use best fit chars }
WC_DISCARDNS = $10; { discard non-spacing chars }
WC_SEPCHARS = $20; { generate separate chars }
WC_DEFAULTCHAR = $40; { replace w default char }
// Windows >= Vista
WC_ERR_INVALID_CHARS = $80; { error for invalid chars }
{$ENDIF}
function AnsiToWide(const S: ZAnsiString;
const CP: Word): {$IFDEF WITH_UNICODEFROMLOCALECHARS}UnicodeString{$ELSE}WideString{$ENDIF};
function WideToAnsi(const ws: {$IFDEF WITH_UNICODEFROMLOCALECHARS}UnicodeString{$ELSE}WideString{$ENDIF}; CP: Word):
ZAnsiString;
function StringToAnsiEx(const s: String; const {$IFNDEF UNICODE}FromCP,{$ENDIF} ToCP: Word): ZAnsiString;
function AnsiToStringEx(const s: ZAnsiString; const FromCP{$IFNDEF UNICODE}, ToCP{$ENDIF}: Word): String;
{$ENDIF}
Für mich sieht das so aus, als würden sich UNICODE und WITH_LCONVENCODING gegenseitig ausschliessen.
Zuletzt geändert von Lori am Di 19. Mär 2013, 15:53, insgesamt 1-mal geändert.
Grund: Bitte den Highlighter nutzen.
Grund: Bitte den Highlighter nutzen.