Hallo Hubert
du hast übersehen dass es nicht "Das nicht geht" ist sondern dass die Performance übers Makro derart schlecht ist dass sich dieser Weg aus Performance Gründen bei vielen solchen Aufrufen gleich selbst verunmöglicht .....
Moderator: Moderatoren
Hallo Hubert
Code: Alles auswählen
if IsFunction("cFunc")
&(cFunc)(paramer liste) // ohne Codeblock
Code: Alles auswählen
STATIC sApi:=NIL
LOCAL uRet
if IsNil(sApi)
sApi := DllPrepareCall( <dllname>, DLL_STDCALL, cFunc)
endif
uRet := DllExecuteCall(sApi, p1, p2, p3,......)
Code: Alles auswählen
FUNC DynCall(cDll, cFunc )
STATIC aTemplate := {}
LOCAL uRet
LOCAL nPos
if (nPos := ascan(aTemplate, {|a| a[1] == cFunc})) = 0
aadd( aTemplate, {cFunc, DllPrepareCall( <dllname>, DLL_STDCALL, cFunc)})
nPos := len(aTemplate)
endif
if pcount() = 3
uRet := DllExecuteCall(aTemplate[nPos,2], pValue(3))
elseif pcount() = 3
uRet := DllExecuteCall(aTemplate[nPos,2], pValue(3), pvlaue(4))
....
endif
return uRet
OK - das kann ich verstehen, ist aber
Dann seid gespannt auf das nächste Update! Das kümmert sich SEHR STARK um EXTERN! Und ergänzt hoffentlich alles, was noch so gefehlt hat.
Hallo MarkusMarcus Herz hat geschrieben: ↑So, 21. Mär 2021 11:40 Mann kann mit dem Makro Operator direkt Funtkionen aufrufen, die mitgelinkt sind!
Code: Alles auswählen
if IsFunction("cFunc") &(cFunc)(paramer liste) // ohne Codeblock
Servus Werner,löst das dann auch mein Problem mit AssocQueryString? Wobei hier aber vermutlich der Fehler bei mir liegt