<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>