#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 tamanho do buffer
Local cValue as Character // armazenar um buffer que vem da dll
If (IsSrvUnix())
oDll := tRunDll():New("dllc.so")
Else
oDll := tRunDll():New("dllc.dll")
EndIf
// Obtendo o ponteiro do buffer e o seu tamanho
oPtr := oDll:NewPointer()
oDll:CallFunction("getBinary", "PI", oPtr, @nLen)
// Copiando o buffer
oDll:MemCpy(cValue, oPtr, nLen)
Conout(cValue)
// terminou? vamos sanitizar o uso da dll
oDll:Free()
Return |