TLPP - LANGUAGE
- CallFunction(cFunctionName, cSignature, xRet, xParameters)
- objetivo: chamar uma função de uma DLL escrita em C.
- cFunctionName: o nome da função que será chamada (case-sensitive).
- cSignature: a assinatura da função (retorno e parâmetros). Veja a seção DynCall - Assinatura da chamada, que fala sobre assinaturas de funções e métodos.
- xRet: uma variável para guardar o retorno da função. Se for função void, passe Nil.
- xParameters: a lista de parâmetros da função chamada. Se a função não possuir parâmetros, essa lista não precisa ser passada.
- retorno: lógico
- .T. execução com sucesso
- .F. execução com erro
Esse exemplo coloca lado a lado um possível código de uma biblioteca escrita em C e o código TLPP que carrega e executa a função add exportada.
Exemplo: lado da biblioteca #include <stdio.h>
#include <stdlib.h>
#define EXPORT __declspec(dllexport)
EXPORT int add(int a, int b)
{
return a + b;
}
| 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:callFunction("add", "III", nValue, 4, 8)
Conout("Retorno: " + cValToChar(nValue)) // espera-se 12
oDll:Free()
Return
|
Import HTML Content
Visão Geral
Conteúdo das Ferramentas