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

Rodrigo Ângelo drigo.angelo em gmail.com
Seg Nov 26 17:08:08 -02 2018


Cleber,

Talvez dê pra você fazer uma outra dll em C que encapsula essa e adiciona
as bibliotecas que você precisa.

Att,
Rodrigo

On Mon, Nov 26, 2018 at 4:54 PM Cleber Borges por (R-br) <
r-br em listas.c3sl.ufpr.br> wrote:

> 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> 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
>>
>>
>>
>>
>>
>> ------------------------------
>> [image: Avast logo] <https://www.avast.com/antivirus>
>>
>> Este email foi escaneado pelo Avast antivírus.
>> www.avast.com <https://www.avast.com/antivirus>
>>
>>
>> <#m_7619292552036792796_m_-3904356728291830613_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>> _______________________________________________
>> R-br mailing list
>> 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.
>
> _______________________________________________
> R-br mailing list
> 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/d7814a04/attachment.html>


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