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

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list

olá a todos... boa tarde!

Estou tentando aprender como usar uma DLL, via "dyn.load" e ".C" dentro do R.

Fiz uns testes (abaixo tem um pedaço do que tentei) e não consegui entender como fazer isso.

Se alguém puder dar uma dica de como fazer essa manipulação, seria de muita ajuda!

E agradeço desde já por qualquer dica.

Obrigado!

Cleber

###

No pdf explicando o SDK, tem detalhe da função:

FDwfGetVersion(char szVersion[32])
Description: Retrieves the version string. The version string is composed of major, minor, and build numbers (i.e.,
“2.0.19”).

##############################################################

### No R, eu tentei:

> dwf <- dyn.load("C:\\Program Files (x86)\\Digilent\\WaveForms3\\dwf")
> is.loaded("FDwfGetVersion")
[1] TRUE
> result <- .C("FDwfGetVersion", ver=as.character() )
> str(result)
List of 1
 $ ver: chr(0)
>

#################################

Mas em Python, vi que o resultado é o seguinte ( exemplos em Python são disponibilizados pelo fabricante)

#################################

>>> from ctypes import *
>>> dwf = cdll.dwf
>>> version = create_string_buffer(16)
>>> dwf.FDwfGetVersion(version)
1
>>> print("DWF Version: "+str(version.value))
DWF Version: 3.8.22
>>>









Avast logo

Este email foi escaneado pelo Avast antivírus.
www.avast.com



_______________________________________________
R-br mailing list
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list
Se a lógica de chamar uma função C se mantém com a API do R que vc está usando, necessitar-se-ia que na chamada a  FDwfGetVersion você passasse uma posição de memória para a função preencher a cadeia (a.k.a. ponteiro para memória no jargão C).

O que a documentação da biblioteca R para ligação com o C diz a esse respeito?


On Sun, Nov 18, 2018 at 3:53 PM Cleber N.Borges por (R-br) <[hidden email]> wrote:

olá a todos... boa tarde!

Estou tentando aprender como usar uma DLL, via "dyn.load" e ".C" dentro do R.

Fiz uns testes (abaixo tem um pedaço do que tentei) e não consegui entender como fazer isso.

Se alguém puder dar uma dica de como fazer essa manipulação, seria de muita ajuda!

E agradeço desde já por qualquer dica.

Obrigado!

Cleber

###

No pdf explicando o SDK, tem detalhe da função:

FDwfGetVersion(char szVersion[32])
Description: Retrieves the version string. The version string is composed of major, minor, and build numbers (i.e.,
“2.0.19”).

##############################################################

### No R, eu tentei:

> dwf <- dyn.load("C:\\Program Files (x86)\\Digilent\\WaveForms3\\dwf")
> is.loaded("FDwfGetVersion")
[1] TRUE
> result <- .C("FDwfGetVersion", ver=as.character() )
> str(result)
List of 1
 $ ver: chr(0)
>

#################################

Mas em Python, vi que o resultado é o seguinte ( exemplos em Python são disponibilizados pelo fabricante)

#################################

>>> from ctypes import *
>>> dwf = cdll.dwf
>>> version = create_string_buffer(16)
>>> dwf.FDwfGetVersion(version)
1
>>> print("DWF Version: "+str(version.value))
DWF Version: 3.8.22
>>>









Avast logo

Este email foi escaneado pelo Avast antivírus.
www.avast.com


_______________________________________________
R-br mailing list
[hidden email]
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
[hidden email]
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.

nimggbcgcgfhmldb.png (26K) Download Attachment
nimggbcgcgfhmldb.png (26K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list
Olá Cesar,
Obrigado pelo comentário...
Não há uma biblioteca para essa ligação. É justo a ligação que pretendia construir.
Até onde entendi a ligação se daria pelo uso dessa função do R: ".C" para manuseio das funções dentro da dll.
Mas de fato, imagino que a função esteja escrevendo o valor da variável (no caso uma string) mas que eu não entendi como fazer esse parâmetro ser transportado para o R (tal como foi feito no exemplo em Python).
O help da função .C diz:
######
.C(.NAME, ..., NAOK = FALSE, DUP = TRUE, PACKAGE, ENCODING)
onde:
.NAME  =  a character string giving the name of a C function
...    =  arguments to be passed to the foreign function.
######
Por isso tentei:   > result <- .C("FDwfGetVersion", ver=as.character() )  na esperança de que a string em C fosse "magicamente" repassada para a variável "ver", em R.

Mas não deu certo! :-(
Ainda não consegui achar nenhum exemplo na internet para elucidar esse meu probleminha!
Obrigado pela atenção
Cleber Borges



Em 19/11/2018 20:16, Cesar Rabak por (R-br) escreveu:
Se a lógica de chamar uma função C se mantém com a API do R que vc está usando, necessitar-se-ia que na chamada a  FDwfGetVersion você passasse uma posição de memória para a função preencher a cadeia (a.k.a. ponteiro para memória no jargão C).

O que a documentação da biblioteca R para ligação com o C diz a esse respeito?


On Sun, Nov 18, 2018 at 3:53 PM Cleber N.Borges por (R-br) <[hidden email]> wrote:

olá a todos... boa tarde!

Estou tentando aprender como usar uma DLL, via "dyn.load" e ".C" dentro do R.

Fiz uns testes (abaixo tem um pedaço do que tentei) e não consegui entender como fazer isso.

Se alguém puder dar uma dica de como fazer essa manipulação, seria de muita ajuda!

E agradeço desde já por qualquer dica.

Obrigado!

Cleber

###

No pdf explicando o SDK, tem detalhe da função:

FDwfGetVersion(char szVersion[32])
Description: Retrieves the version string. The version string is composed of major, minor, and build numbers (i.e.,
“2.0.19”).

##############################################################

### No R, eu tentei:

> dwf <- dyn.load("C:\\Program Files (x86)\\Digilent\\WaveForms3\\dwf")
> is.loaded("FDwfGetVersion")
[1] TRUE
> result <- .C("FDwfGetVersion", ver=as.character() )
> str(result)
List of 1
 $ ver: chr(0)
>

#################################

Mas em Python, vi que o resultado é o seguinte ( exemplos em Python são disponibilizados pelo fabricante)

#################################

>>> from ctypes import *
>>> dwf = cdll.dwf
>>> version = create_string_buffer(16)
>>> dwf.FDwfGetVersion(version)
1
>>> print("DWF Version: "+str(version.value))
DWF Version: 3.8.22
>>>











Avast logo

Este email foi escaneado pelo Avast antivírus.
www.avast.com



_______________________________________________
R-br mailing list
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list
Caros colegas do R!!! 
Venho desenvolvendo um projeto com dados de colar GPS de onças-pintadas com seleção de habitat no Pantanal. 
Gostaria de saber se algum de vocês possuem conhecimento sobre o package AdehabitatHS e AdehabitatLT ???

Aluno do 7° semestre de Ciências Biológicas-UNEMAT



Em Seg, 19 de nov de 2018 21:02, Cleber N.Borges por (R-br) <[hidden email] escreveu:
Olá Cesar,
Obrigado pelo comentário...
Não há uma biblioteca para essa ligação. É justo a ligação que pretendia construir.
Até onde entendi a ligação se daria pelo uso dessa função do R: ".C" para manuseio das funções dentro da dll.
Mas de fato, imagino que a função esteja escrevendo o valor da variável (no caso uma string) mas que eu não entendi como fazer esse parâmetro ser transportado para o R (tal como foi feito no exemplo em Python).
O help da função .C diz:
######
.C(.NAME, ..., NAOK = FALSE, DUP = TRUE, PACKAGE, ENCODING)
onde:
.NAME  =  a character string giving the name of a C function
...    =  arguments to be passed to the foreign function.
######
Por isso tentei:   > result <- .C("FDwfGetVersion", ver=as.character() )  na esperança de que a string em C fosse "magicamente" repassada para a variável "ver", em R.

Mas não deu certo! :-(
Ainda não consegui achar nenhum exemplo na internet para elucidar esse meu probleminha!
Obrigado pela atenção
Cleber Borges



Em 19/11/2018 20:16, Cesar Rabak por (R-br) escreveu:
Se a lógica de chamar uma função C se mantém com a API do R que vc está usando, necessitar-se-ia que na chamada a  FDwfGetVersion você passasse uma posição de memória para a função preencher a cadeia (a.k.a. ponteiro para memória no jargão C).

O que a documentação da biblioteca R para ligação com o C diz a esse respeito?


On Sun, Nov 18, 2018 at 3:53 PM Cleber N.Borges por (R-br) <[hidden email]> wrote:

olá a todos... boa tarde!

Estou tentando aprender como usar uma DLL, via "dyn.load" e ".C" dentro do R.

Fiz uns testes (abaixo tem um pedaço do que tentei) e não consegui entender como fazer isso.

Se alguém puder dar uma dica de como fazer essa manipulação, seria de muita ajuda!

E agradeço desde já por qualquer dica.

Obrigado!

Cleber

###

No pdf explicando o SDK, tem detalhe da função:

FDwfGetVersion(char szVersion[32])
Description: Retrieves the version string. The version string is composed of major, minor, and build numbers (i.e.,
“2.0.19”).

##############################################################

### No R, eu tentei:

> dwf <- dyn.load("C:\\Program Files (x86)\\Digilent\\WaveForms3\\dwf")
> is.loaded("FDwfGetVersion")
[1] TRUE
> result <- .C("FDwfGetVersion", ver=as.character() )
> str(result)
List of 1
 $ ver: chr(0)
>

#################################

Mas em Python, vi que o resultado é o seguinte ( exemplos em Python são disponibilizados pelo fabricante)

#################################

>>> from ctypes import *
>>> dwf = cdll.dwf
>>> version = create_string_buffer(16)
>>> dwf.FDwfGetVersion(version)
1
>>> print("DWF Version: "+str(version.value))
DWF Version: 3.8.22
>>>











Avast logo

Este email foi escaneado pelo Avast antivírus.
www.avast.com


_______________________________________________
R-br mailing list
[hidden email]
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
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list
In reply to this post by R-br mailing list
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



On 18 Nov 2018, at 15:53, Cleber N.Borges por (R-br) <[hidden email]> wrote:

dwf


_______________________________________________
R-br mailing list
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list
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

Este email foi escaneado pelo Avast antivírus.
www.avast.com



_______________________________________________
R-br mailing list
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list
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) <[hidden email]> 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

Este email foi escaneado pelo Avast antivírus.
www.avast.com


_______________________________________________
R-br mailing list
[hidden email]
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
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list

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) <[hidden email]> 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

Este email foi escaneado pelo Avast antivírus.
www.avast.com


_______________________________________________
R-br mailing list
[hidden email]
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
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list
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) <[hidden email]> 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) <[hidden email]> 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

Este email foi escaneado pelo Avast antivírus.
www.avast.com


_______________________________________________
R-br mailing list
[hidden email]
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
[hidden email]
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
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

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

R-br mailing list
Concordo que possa ser uma saída.

On Mon, Nov 26, 2018 at 5:08 PM Rodrigo Ângelo <[hidden email]> 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) <[hidden email]> 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) <[hidden email]> 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

Este email foi escaneado pelo Avast antivírus.
www.avast.com


_______________________________________________
R-br mailing list
[hidden email]
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
[hidden email]
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
[hidden email]
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.