Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Estado
subtletrue
colourGreen
titletlpp - language

  • FreeObj(xObjoObj)
    • objetivo: encerrar o uso do de um objeto criado via NewObj (veja tRunDll:NewObj).
    • xObjoObj: o 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.

Bloco de código
languagecpp
firstline1
titleExemplo: lado da biblioteca
#include <stdio.h>
#include <stdlib.
Retorno: lógico
h>

#define EXPORT __declspec(dllexport)

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

tArith::tArith()
{
}

tArith* tArith::factory()
{
  tArith* p;
  p = new tArith();
  return p;
}
Bloco de código
languagecpp
firstline1
titleExemplo: 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