[R-br] usar funções em C dentro do objeto DLL
Cesar Rabak
cesar.rabak em gmail.com
Seg Nov 26 17:38:36 -02 2018
Concordo que possa ser uma saída.
On Mon, Nov 26, 2018 at 5:08 PM Rodrigo Ângelo <drigo.angelo em gmail.com>
wrote:
> 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_-5536672279331657497_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/9a064fae/attachment.html>
Mais detalhes sobre a lista de discussão R-br