In der oberen Zeile ...
Code: Alles auswählen
ALT: nProxyMode := 1+iif(Empty(::proxy),2,0)
NEU: nProxyMode := 1+iif(Empty(::proxy),0,2)
wurde bisher 3 bei leerem ::proxy zurückgegeben, nun 1 ... eventuell ein Fehler im alten code ?
Code: Alles auswählen
ALT: nHnd := DllExecuteCall( cTpl, cUserAgent, nProxyMode, ::proxy, "", 1 )
NEU: nHnd := DllExecuteCall( cTpl, cUserAgent, nProxyMode, iif( Empty( ::proxy ), 0, ::proxy ), 0, 1 )
oder einfacher aufgelöst:
if Empty( ::proxy )
::proxy := 0 // es könnte auch NIL sein ?
endif
NEU: nHnd := DllExecuteCall( cTpl, cUserAgent, nProxyMode, ::proxy, 0, 1 ) // nun kann man erkennen, dass eine 0 als Parameter statt einem Pointer auf einen leeren String übergeben wurde.
Im zweiten Beispile fängt er ::proxy = NIL ab, wobei eigentlich NIL von Xbase++ als 0 übergeben werden müsste (laut API Doku).
Zusätzlich wird der leere String als 0 übergeben, um das zu verstehen, müsste man die Windows API prüfen welcher Parameter richtig ist.
Aber wenn es jetzt geht scheint das so zu stimmen