But I did a search in the files for "Invalid code page" and I
couldn't find anything ... so I fear I'm barking up the wrong tree
anyway.

But then ... if anybody has an idea, let me know.

I don't believe it's in ICS.
Anyway the easiest way to catch this bug reliable was to include, for
example, MadExcept into your project that the generates a bug report
including a nice stack trace with source code line numbers.
MadExcept comes with its own email clients so the user is able
to send you the bugreport with a single mouse click.

Thanks for the MadExcept tip Arno, I will check it out.

Meanwhile I was searching the net for this errror and I came accross a post:
https://forums.codegear.com/thread.jspa?threadID=9290

Where it said:
"The error is actually coming from Windows, not Delphi,
when TEncoding's constructor passes $FFFF to the Win32 API GetCPInfo()
function and it fails."

So maybe somewhere in the code a wrong codepage is passed this this Win32 API call. So I searched all files in my project for "GetCPInfo" and compiled this list:

Searching for: GetCPInfo
Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(74): Sep 21, 2008 V1.06 A. Garrels - Compile GetCPInfoEx() conditionally (available since 2009) Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(488): {$EXTERNALSYM GetCPInfoExA} Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(489): function GetCPInfoExA(CodePage: UINT; dwFlags: DWORD; var lpCPInfoEx: CPINFOEXA): BOOL; stdcall; Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(490): {$EXTERNALSYM GetCPInfoExW} Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(491): function GetCPInfoExW(CodePage: UINT; dwFlags: DWORD; var lpCPInfoEx: CPINFOEXW): BOOL; stdcall; Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(492): {$EXTERNALSYM GetCPInfoEx} Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(493): function GetCPInfoEx(CodePage: UINT; dwFlags: DWORD; var lpCPInfoEx: CPINFOEX): BOOL; stdcall; Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(510): function GetCPInfoExW; external kernel32 name 'GetCPInfoExW'; Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(511): function GetCPInfoExA; external kernel32 name 'GetCPInfoExA'; Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(512): function GetCPInfoEx; external kernel32 name {$IFDEF UNICODE}'GetCPInfoExW' {$ELSE} 'GetCPInfoExA' {$ENDIF}; Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(520): Result := GetCPInfo(ACodePage, Info); Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(529): if not GetCPInfo(ACodePage, Info) then Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(593): if GetCPInfoEx(CP.CodePage, 0, Info) then Online\ICS2009\Delphi\Vc32\OverbyteIcsCharsetUtils.pas(888): if GetCPInfo(IcsSystemCodePage, Info) then Online\ICS2009\Delphi\Vc32\OverbyteIcsStreams.pas(1518): if GetCPInfo(Value, CPInfo) then begin

Which brings me back to ICS.
Again, I'm not saying it's ICS, I'm just wildly stabbing and kicking at the moment to catch a straw to grasp on.

Can somebody check this ?  I'm not Delphi savvy at all.
Is GetCPInfo() called during construction somehwere ?
How are exceptions handled here ?
Can there be put a try {} catch(...){} around this call (or whatever the equivalent is in Delphi) ?

PS. I received a second complaint today.  Same error.

PS. during reply, can you cc: pe...@smart-projects.net (I'm getting the daily digest)


--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to