<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Olá Cesar,</div>
<div class="moz-cite-prefix">Obrigado pelo comentário...</div>
<div class="moz-cite-prefix">Não há uma biblioteca para essa
ligação. É justo a ligação que pretendia construir.</div>
<div class="moz-cite-prefix">Até onde entendi a ligação se daria
pelo uso dessa função do R: ".C" para manuseio das funções dentro
da dll.</div>
<div class="moz-cite-prefix">Mas de fato, imagino que a função
esteja escrevendo o valor da variável (no caso uma string) mas que
eu não entendi como fazer esse parâmetro ser transportado para o R
(tal como foi feito no exemplo em Python).</div>
<div class="moz-cite-prefix">O help da função .C diz:</div>
<div class="moz-cite-prefix">######<br>
</div>
<div class="moz-cite-prefix">
<pre>.C(.NAME, ..., NAOK = FALSE, DUP = TRUE, PACKAGE, ENCODING)
onde:
<code>.NAME</code> = a character string giving the name of a C function
... = arguments to be passed to the foreign function.</pre>
</div>
<div class="moz-cite-prefix">######</div>
<div class="moz-cite-prefix">Por isso tentei: > result <-
.C("FDwfGetVersion", ver=as.character() ) na esperança de que a
string em C fosse "magicamente" repassada para a variável "ver",
em R.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Mas não deu certo! :-(</div>
<div class="moz-cite-prefix">Ainda não consegui achar nenhum exemplo
na internet para elucidar esse meu probleminha!</div>
<div class="moz-cite-prefix">Obrigado pela atenção</div>
<div class="moz-cite-prefix">Cleber Borges<br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Em 19/11/2018 20:16, Cesar Rabak por
(R-br) escreveu:<br>
</div>
<blockquote type="cite"
cite="mid:CAKrF98nohApQSdCGwj7ScPY7OLrLtdP+91bv52nKocnR__YVmA@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">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. <i>ponteiro</i> para memória
no jargão C).<br>
<br>
O que a documentação da biblioteca R para ligação com o C diz a
esse respeito?
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr">On Sun, Nov 18, 2018 at 3:53 PM Cleber N.Borges
por (R-br) <<a href="mailto:r-br@listas.c3sl.ufpr.br"
moz-do-not-send="true">r-br@listas.c3sl.ufpr.br</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p>olá a todos... boa tarde!</p>
<p>Estou tentando aprender como usar uma DLL, via "dyn.load"
e ".C" dentro do R.</p>
<p> Fiz uns testes (abaixo tem um pedaço do que tentei) e
não consegui entender como fazer isso.</p>
<p>Se alguém puder dar uma dica de como fazer essa
manipulação, seria de muita ajuda!</p>
<p>E agradeço desde já por qualquer dica.</p>
<p>Obrigado!</p>
<p>Cleber</p>
<p>###</p>
<p>No pdf explicando o SDK, tem detalhe da função:<br>
</p>
<table class="m_-2461537844725911222NormalTable">
<tbody>
<tr>
<td width="550"><span
class="m_-2461537844725911222fontstyle0">FDwfGetVersion</span><span
class="m_-2461537844725911222fontstyle1">(</span><span
class="m_-2461537844725911222fontstyle1"
style="color:rgb(0,0,255)">char </span><span
class="m_-2461537844725911222fontstyle1">szVersion[32])</span></td>
</tr>
<tr>
<td width="550"><span
class="m_-2461537844725911222fontstyle3">Description:
</span><span
class="m_-2461537844725911222fontstyle4">Retrieves
the version string. The version string is composed
of major, minor, and build numbers (i.e.,<br>
“2.0.19”).</span></td>
</tr>
</tbody>
</table>
<br
style="font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<p><img src="cid:part1.EC6B1E64.1F0E529B@yahoo.com.br"
alt="" moz-do-not-send="true"></p>
<p>##############################################################</p>
<p>### No R, eu tentei:<br>
</p>
<p>> dwf <- dyn.load("C:\\Program Files
(x86)\\Digilent\\WaveForms3\\dwf")<br>
> is.loaded("FDwfGetVersion")<br>
[1] TRUE<br>
> result <- .C("FDwfGetVersion", ver=as.character()
)<br>
> str(result)<br>
List of 1<br>
$ ver: chr(0) <br>
> <br>
</p>
<p>#################################</p>
<p>Mas em Python, vi que o resultado é o seguinte ( exemplos
em Python são disponibilizados pelo fabricante)</p>
<p>#################################<br>
</p>
<p>>>> from ctypes import *<br>
>>> dwf = cdll.dwf<br>
>>> version = create_string_buffer(16)<br>
>>> dwf.FDwfGetVersion(version)<br>
1<br>
>>> print("DWF Version: "+str(version.value))<br>
DWF Version: 3.8.22<br>
>>> <br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
</div>
</blockquote>
</div>
<br>
</blockquote>
<p><br>
</p>
<div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2">
<br /><br />
<hr style='border:none; color:#909090; background-color:#B0B0B0; height: 1px; width: 99%;' />
<table style='border-collapse:collapse;border:none;'>
<tr>
<td style='border:none;padding:0px 15px 0px 8px'>
<a href="https://www.avast.com/antivirus">
<img border=0 src="http://static.avast.com/emails/avast-mail-stamp.png" alt="Avast logo" />
</a>
</td>
<td>
<p style='color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helvetica"; font-size:12pt;'>
Este email foi escaneado pelo Avast antivírus.
<br><a href="https://www.avast.com/antivirus">www.avast.com</a>
</p>
</td>
</tr>
</table>
<br />
<a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"> </a></div></body>
</html>