Árvore de páginas

TLPP - LANGUAGE

  • SetVar(cVarName, cSignature, xValue)
    • objetivo: alterar o conteúdo de uma variável global da DLL.
    • cVarName: o nome da variável da DLL.
    • cSignature: o tipo da variável (veja DynCall - Assinatura da chamada).
    • xValue: o novo valor da variável.
    • retorno: lógico
      • .T.  execução com sucesso
      • .F.  execução com erro


Esse exemplo mostra um código TLPP alterando o valor de uma variável global de uma DLL.

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

#define EXPORT __declspec(dllexport)

EXPORT double nGlobal = 5.29;
Exemplo: lado TLPP
#include "tlpp-core.th"

Function U_DynCall()
  Local oDll as Object
  Local nValue as Numeric
  
  If (IsSrvUnix())
    oDll := tRunDll():New("./dllc.so")
  Else
    oDll := tRunDll():New("dllc.dll")
  EndIf

  oDll:GetVar("nGlobal", "D", nValue)
  nValue := 3.14

  oDll:SetVar("nGlobal", "D", nValue*2)

  oDll:GetVar("nGlobal", "D", nValue)
  Conout(nValue) // espera-se 6.28

  oDll:Free()
  
Return
  • Sem rótulos