Olá,

Nunca trabalhei a interface entre C++ e Ruby. Mas C e Ruby, sim.

Na minha opinião, a melhor fonte de documentação, como o Joao Pedrosa
indicou em parte, é o capítulo do Pickaxe, o README.EXT e o Ruby
Hacking Guide (http://rhg.rubyforge.org/). Sendo o último meu
preferido.


Se você for trabalhar com a versão 1.7, seu trabalho é mais fácil.
Você pode utilizar as macros StringValue e StringValuePtr. A primeira
retorna um struct que representa strings em Ruby que é definido, mais
ou menos, assim:

struct RString {
  struct RBasic basic;
  long len;
  char *ptr;
  union {
    long capa;
    VALUE shared;
  } aux;
}

O ponteiro ptr é sua string. E, diferente das strings em C, que são
terminadas por \0, as strings em Ruby definem explicitamente o seu
tamanho (len). Assim, pode haver \0 dentro dela!

A macro StringValuePtr retorna ptr.


Espero ter sido claro.

On 6/26/06, raphael teixeira de jesus <[EMAIL PROTECTED]> wrote:
>
> Oi, meu nome e Raphael
>
> Estou com alguns problemas pra fazer a comunicaçao do C++ com o Ruby,
> Cheguei a funçao em Ruby q chama a aplicaçao em C++
> "rb_define_global_function"..
> Mas preciso q o C++ receba uma string enviada pelo Ruby..
>
>
> Respondam assim q puderem
> Aguardo respostas,,
_______________________________________________
Ruby-l mailing list
[email protected]
http://www.listas.unicamp.br/mailman/listinfo/ruby-l

Responder a