Árvore de páginas

TLPP - LANGUAGE

  • FreeObj(oObj)
    • objetivo: encerrar o uso de um objeto criado via NewObj (veja tRunDll:NewObj).
    • oObj: um objeto criado via método newObj.
    • retorno: lógico
      • .T.  execução com sucesso
      • .F.  execução com erro


Logo depois de utilizar uma instância de um objeto da DLL, é importante que a aplicação TLPP faça a sanitização desse uso chamando FreeObj, conforme exemplo.

Exemplo: lado da biblioteca
#include <stdio.h>
#include <stdlib.h>

#define EXPORT __declspec(dllexport)

class EXPORT tArith
{
public:
  tArith();
  tArith* factory();
};

tArith::tArith()
{
}

tArith* tArith::factory()
{
  tArith* p;
  p = new tArith();
  return p;
}
Exemplo: lado TLPP
#include "tlpp-core.th"

Function U_DynCall()
  Local oDll as Object       // objeto de carga da dll
  Local oObj as Object       // abstração para instância tArith

  If (IsSrvUnix())
    oDll := tRunDll():New("./dllcpp.so")
  Else
    oDll := tRunDll():New("dllcpp.dll")
  EndIf

  oObj := oDll:NewObj()
  oDll:CallMethod("tArith::factory()", "P", oObj)       

  // terminou? vamos sanitizar o uso da dll
  oDll:FreeObj(oObj)
  oDll:Free()
  
Return
  • Sem rótulos