[R-br] usar funções em C dentro do objeto DLL

Cleber Borges klebyn em yahoo.com.br
Seg Nov 26 16:54:27 -02 2018


Olá Cesar e demais

Obrigado pelo comentário.

Lendo mais sobre esse modo de integrar C com R, vi que é pré-requisito 
compilar o código C com a lib Rinternals.h ...

Porém eu não tenho como ter acesso ao codigo fonte e somente a dll 
pronta. Imagino que a fonte do problema desse ser esse limitante.

Daí parei de tentar.

Mas obrigado pelo comentário de todo modo!

Att.,

Cleber Borges



Em 26/11/2018 15:52, Cesar Rabak escreveu:
> Cleber,
>
> Seu raciocínio no C está correto com o /proviso/ que cadeia szVersion 
> tem que estar pré-alocada antes da chamada à função **FDwfGetVersion 
> da API do Windows.
>
> Veja na página 7 do manual do SDK que você está usando a documentação 
> para a função em questão diz:
>
> <quote>
>   FDwfGetVersion(char szVersion[32])
> Parameters:
> -       szVersion - Pointer to buffer to receive version string.
>
> The function above is used to retrieve the version string. The version 
> string is composed of major, minor, and build numbers (i.e., “2.0.19”).
> </quote>
>
> Você precisa ver na documentação do R como se aloca a cadeia de 
> caracteres C compatível *no R* para poder passar o ponteiro para a 
> chamada à função.
>
> HTH
> --
> Cesar Rabak
>
>
> On Tue, Nov 20, 2018 at 8:07 AM Cleber N.Borges por (R-br) 
> <r-br em listas.c3sl.ufpr.br <mailto:r-br em listas.c3sl.ufpr.br>> wrote:
>
>     Olá Daniel  e demais
>     Bom dia
>     O software (dll) é gratuito mas não é open-source portanto não
>     tenho as fontes para compilar!
>
>     Um detalhe no arquivo "dwf.h" tem a seguinte declaração:
>     *// Error and version APIs:*
>     DWFAPI BOOL FDwfGetLastError(DWFERC *pdwferc);
>     DWFAPI BOOL FDwfGetLastErrorMsg(char szError[512]);
>     *DWFAPI BOOL FDwfGetVersion(char szVersion[32]);  // Returns DLL
>     version, for instance: "3.8.5"*
>
>     Imaginei que deveria como retornar uma variável lógica e modificar
>     a variável szVersion. Meu chute é correto?
>
>     Obrigado pelo comentário.
>     Cleber Borges
>
>
>
>     Em 19/11/2018 23:18, Daniel Guimarães Tiezzi escreveu:
>>     Boa noite Cleber
>>
>>     Não seria um problema de compilação do dwf antes do dyn.load()?
>>     Vejo que está em uma máquina Windows. Tem algum compilador cc you
>>     gcc instalado? Eu não trabalho com Windows, mas talvez possa ser
>>     isso.
>>
>>     Daniel
>>
>>
>
>
>
>     ------------------------------------------------------------------------
>     Avast logo <https://www.avast.com/antivirus> 	
>
>     Este email foi escaneado pelo Avast antivírus.
>     www.avast.com <https://www.avast.com/antivirus>
>
>
>     <#m_-3904356728291830613_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>     _______________________________________________
>     R-br mailing list
>     R-br em listas.c3sl.ufpr.br <mailto:R-br em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20181126/5884205d/attachment.html>


Mais detalhes sobre a lista de discussão R-br