Eu tava fazendo seguindo esse vídeo tutorial: <a href="http://www.youtube.com/watch?v=WIihUvQwYTA">http://www.youtube.com/watch?v=WIihUvQwYTA</a><br><br><div class="gmail_quote">Em 25 de agosto de 2011 17:05, beniltoncarvalho [via R-br] <span dir="ltr"><<a href="mailto:ml-node%2B3769255-1291827254-223914@n4.nabble.com">ml-node+3769255-1291827254-223914@n4.nabble.com</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

        Voce vai precisar ler mesmo o material do manual e, para uma versao
<br>expressa, ver as notas de aula que postei no topico ao qual referi-me
<br>anteriormente.
<br><br>1) Minha recomendacao (e de todo mundo que usa R+C) e' vc gerar a
<br>biblioteca usando:
<br><br>R CMD SHLIB arquivo.c
<br><br>2) Quando o R conversa com o C, tudo o que o C enxerga sao ponteiros.
<br>Entao, toda a comunicacao C <-> R deve ser feita via ponteiros.
<br><br>Dito isso, seu programa precisa ser ligeiramente modificado:
<br><br><br>/* INICIO */
<br>/*
<br><div class="im">  Programa: exfun.c
<br>  Objetivo; Primeiro exemplo de uso de funcao
<br>  Autor: Adriano Cruz
<br>  Data: 12/10/97
<br>*/
<br>#include<stdio.h>
<br><br>/* Prototipo da funcao */
<br>int soma(int, int);
<br><br><br>/* Funcao Principal */
<br></div>void fPrincipal(double *resultado)
<br>{
<br><div class="im">     int a=5, b=9;
<br></div>     resultado[0] = soma(a,b);
<br><div class="im">}
<br><br>/* Definicao da funcao */
<br>int soma(int a, int b)
<br>{
<br>    return a+b;
<br>}
<br><br></div>/* FIM */
<br><br>Depois disso, compile-o usando:
<br><br>R CMD SHLIB arquivo.c
<br><br>(preste atencao qual arquivo sera' gerado, pq nao to muito certo de
<br>que em Windows sera' um .so, imagino que seja um DLL).
<br><br>Carregue o R e use:
<br><br>dyn.load("arquivo.dll")
<br>x = .C("fPrincipal", double(1))
<br><br>Abaixo e' o q eu tenho:
<br><br>> dyn.load("teste.so")
<br>> x = .C("fPrincipal", as.double(1))
<br>> x
<br>[[1]]
<br>[1] 14
<br><br>O segundo argumento em .C() que vc ve, e' reservando, no R, memoria
<br>para 1 numero real, que o programa em C usa para gravar a resposta.
<br><div class="im"><br>b
<br>_______________________________________________
<br>R-br mailing list
<br><a href="http://user/SendEmail.jtp?type=node&node=3769255&i=0" rel="nofollow" link="external" target="_blank">[hidden email]</a>
<br><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="nofollow" link="external" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="nofollow" link="external" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.
<br>
        
        <br>
        <br>
        <hr noshade size="1" color="#cccccc">
        </div><div style="color:#444;font:12px tahoma,geneva,helvetica,arial,sans-serif"><div class="im">
                <div style="font-weight:bold">If you reply to this email, your message will be added to the discussion below:</div>
                </div><a href="http://r-br.2285057.n4.nabble.com/R-br-Duvida-Invocar-funcoes-C-no-R-tp3768159p3769255.html" target="_blank">http://r-br.2285057.n4.nabble.com/R-br-Duvida-Invocar-funcoes-C-no-R-tp3768159p3769255.html</a>
        </div><div><div></div><div class="h5">
        <div style="color:#666;font:11px tahoma,geneva,helvetica,arial,sans-serif;margin-top:.4em">
                
                To unsubscribe from R-br, <a href="http://r-br.2285057.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3357982&code=cGVkcm8ucmFmYWVsLm1hcmluaG9AZ21haWwuY29tfDMzNTc5ODJ8NTAyMjI0MDYw" target="_blank">click here</a>.
        </div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><font color="#000099">Saudações,</font><div><font color="#000099">Pedro Rafael Diniz Marinho.</font></div><font color="#000099"><br></font><br>