TLPP - LANGUAGE
- StrLen(nRet, oPointer)
- objetivo: obter o tamanho de uma cadeia de caracteres que está na DLL.
- nRet: variável para receber o tamanho da string.
- oPointer: um ponteiro para a cadeia de caracteres. Esse ponteiro é uma abstração realizada antes pelo método newPointer (tRunDll:NewPointer).
- retorno: lógico
- .T. execução com sucesso
- .F. execução com erro
Se TLPP possui um ponteiro para uma área de dados da DLL e essa área é uma string de terminador '\0', é possível consultar o comprimento da string através da operação StrLen, conforme exemplo.
Exemplo: lado da biblioteca #include <stdio.h> #include <stdlib.h> #include <string.h> #define EXPORT __declspec(dllexport) EXPORT void* getPtr() { char* p = (char *) malloc(64); strcpy_s(p, 64, "Dyncall Test"); return p; } | Exemplo: lado TLPP #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 len de uma string da dll If (IsSrvUnix()) oDll := tRunDll():New("./dllc.so") Else oDll := tRunDll():New("dllc.dll") EndIf // Obtendo o ponteiro oPtr := oDll:NewPointer() oDll:CallFunction("getPtr", "P", oPtr) // Retornando o StrLen oDll:StrLen(nLen, oPtr) Conout(nLen) // terminou? vamos sanitizar o uso da dll oDll:Free() Return |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas