Override the chr() function
Posted: Wed Oct 03, 2018 12:53 pm
i´m not able to override the chr() func, while overriding Asc() works as expected. Strange is, that if i place within XIDE the mouse over "chr(196)" the tooltip says "Defined" in my exe, but the compiler generates this code:
c := XSharp.Core.Functions.CHR(196u) // still pointing to the core function chr()
dw := Asc("Ž") // ok, points to the Asc() func in the created exe
Any ideas what the problem with "Chr" might be ?
regards
Karl-Heinz
c := XSharp.Core.Functions.CHR(196u) // still pointing to the core function chr()
dw := Asc("Ž") // ok, points to the Asc() func in the created exe
Any ideas what the problem with "Chr" might be ?
Code: Select all
_DLL FUNCTION MessageBox(hwnd AS intptr , lpText AS STRING, lpCaption AS STRING, uType AS DWORD);
AS INT PASCAL:USER32.MessageBoxA ANSI
#define _OVERRIDE_ASC_AND_CHR_
#ifdef _OVERRIDE_ASC_AND_CHR_
FUNCTION CHR (dwChar AS DWORD ) AS STRING
? "Chr() override"
RETURN XSharp.Core.Functions.ChrA ( dwChar )
FUNCTION Asc (c AS STRING ) AS DWORD
? "Asc() override"
RETURN XSharp.Core.Functions.AscA(c )
#endif
FUNCTION Start() AS VOID
LOCAL dw AS DWORD
LOCAL c AS STRING
c := CHR( 196 ) // should show "Ä"
dw := asc ( "Ž" ) // should show 142
messagebox ( NULL , c + chr(13) + chr(10) + ntrim ( dw ) , "" , 0 )
RETURN
Karl-Heinz