Se a lógica de chamar uma função C se mantém com a API do R que vc está usando, necessitar-se-ia que na chamada a  FDwfGetVersion você passasse uma posição de memória para a função preencher a cadeia (a.k.a. ponteiro para memória no jargão C).

O que a documentação da biblioteca R para ligação com o C diz a esse respeito?


On Sun, Nov 18, 2018 at 3:53 PM Cleber N.Borges por (R-br) <r-br@listas.c3sl.ufpr.br> wrote:

olá a todos... boa tarde!

Estou tentando aprender como usar uma DLL, via "dyn.load" e ".C" dentro do R.

Fiz uns testes (abaixo tem um pedaço do que tentei) e não consegui entender como fazer isso.

Se alguém puder dar uma dica de como fazer essa manipulação, seria de muita ajuda!

E agradeço desde já por qualquer dica.

Obrigado!

Cleber

###

No pdf explicando o SDK, tem detalhe da função:

FDwfGetVersion(char szVersion[32])
Description: Retrieves the version string. The version string is composed of major, minor, and build numbers (i.e.,
“2.0.19”).

##############################################################

### No R, eu tentei:

> dwf <- dyn.load("C:\\Program Files (x86)\\Digilent\\WaveForms3\\dwf")
> is.loaded("FDwfGetVersion")
[1] TRUE
> result <- .C("FDwfGetVersion", ver=as.character() )
> str(result)
List of 1
 $ ver: chr(0)
>

#################################

Mas em Python, vi que o resultado é o seguinte ( exemplos em Python são disponibilizados pelo fabricante)

#################################

>>> from ctypes import *
>>> dwf = cdll.dwf
>>> version = create_string_buffer(16)
>>> dwf.FDwfGetVersion(version)
1
>>> print("DWF Version: "+str(version.value))
DWF Version: 3.8.22
>>>









Avast logo

Este email foi escaneado pelo Avast antivírus.
www.avast.com


_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.