#include "tlpp-core.th"
Function U_DynCall()
Local oDll as Object // objeto de carga da dll
Local oPtr as Object // abstração para um ponteiro da dll
Local nLen as Numeric // vai guardar o len de uma string da dll
Local cValue as Character // armazenar uma string que vem da dll
If (IsSrvUnix())
oDll := tRunDll():New("dllc.so")
Else
oDll := tRunDll():New("dllc.dll")
EndIf
// Obtendo o ponteiro
oPtr := oDll:NewPointer()
oDll:CallFunction("getPtr", "P", oPtr)
// Retornando o StrLen
oDll:StrLen(nLen, oPtr)
// Obtendo a string
oDll:StrCpy(cValue, oPtr, nLen)
Conout(cValue)
// terminou? vamos sanitizar o uso da dll
oDll:Free()
Return |