<div dir="ltr">se sua função retorna void, vc a chama via .C()<div><br></div><div>o seu código tbm deve ser corrigido para res[0] e k[0].</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-09-20 21:54 GMT-03:00 Cleber N.Borges <span dir="ltr"><<a href="mailto:klebyn@yahoo.com.br" target="_blank">klebyn@yahoo.com.br</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Prezados,<br>
<br>
Gostaria de uma ajuda em como fazer a soma de 1+1<br>
mas usando a interface entre R e C.<br>
<br>
a chamada da função  .Call faz travar e fechar o R.<br>
<br>
Agradeço por qualquer ajuda nisso<br>
<br>
Cleber<br>
<br>
# um CMR (do conceito) abaixo:<br>
################################################<br>
> texto_code <-"<br>
+ #include <stdlib.h><br>
+ #include <R.h><br>
+ #include <Rdefines.h><br>
+<br>
+ void testef( double *k, double *res )<br>
+ {<br>
+     res = k + 1;<br>
+ }<br>
+ "<br>
><br>
> sink('teste.c')<br>
> cat( texto_code )<br>
> sink()<br>
><br>
> system("R CMD SHLIB teste.c")<br>
cygwin warning:<br>
  MS-DOS style path detected: C:/R/etc/x64/Makeconf<br>
  Preferred POSIX equivalent is: /cygdrive/c/R/etc/x64/Makeconf<br>
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.<br>
  Consult the user's guide for more details about POSIX paths:<br>
    <a href="http://cygwin.com/cygwin-ug-net/using.html#using-pathnames" rel="noreferrer" target="_blank">http://cygwin.com/cygwin-ug-net/using.html#using-pathnames</a><br>
gcc -m64 -I"C:/R/include" -DNDEBUG -I"d:/RCompile/r-compiling/local/local320/include"     -O2 -Wall -std=gnu99 -mtune=core2 -c teste.c -o teste.o<br>
gcc -m64 -shared -s -static-libgcc -o teste.dll tmp.def teste.o -Ld:/RCompile/r-compiling/local/local320/lib/x64 -Ld:/RCompile/r-compiling/local/local320/lib -LC:/R/bin/x64 -lR<br>
> dyn.load( "teste.dll" )<br>
> is.loaded( 'testef' )<br>
[1] TRUE<br>
><br>
> k=1<br>
><br>
<br>
############################<br>
##########<br>
#   ( .Call('testef', k=as.double(k), res=as.double(0) ) )<br>
#<br>
#  aqui o R trava e fecha !!!!!!!!!!!!!!!!!!!!!!<br>
<br>
<br>
<br>
<br>
<br>
---<br>
Este email foi escaneado pelo Avast antivírus.<br>
<a href="https://www.avast.com/antivirus" rel="noreferrer" target="_blank">https://www.avast.com/antivirus</a><br>
<br>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" 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="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e fornea cdigo mnimo reproduzvel.</blockquote></div><br></div>