[ruby-list:43635] Re: SWIGとRuby/DLの使い方について

From: "takeru sasaki" <sasaki.takeru@...>
Date: 2007-06-20 04:57:06 UTC
List: ruby-list #43635
佐々木です。
自己レスです。

すみません、
  module DSLib
    extend DL::Importable
    dlload "drawstuff.dylib"
    extern "void dsGetViewpoint(float*, float*)"

こっちの定義が、
    extern "void dsGetViewpoint(float ref[], float ref[])"
などとなっているせいでした。


to_ptr("F")でうまく行きました。ありがとうございました。

また、何かありましたらよろしくお願いいたします。


07/06/20 に takeru sasaki<sasaki.takeru@gmail.com> さんは書きました:
> 佐々木です。
> sheepmanさま、レスありがとうございます。
>
> -----
>   # !!!!!! ここの渡し方がおかしい??ちゃんと渡っていない。Ctrl+Vで表示される値がおかしい。 !!!!!!
>   xyz = [   3.0,   0.0,   1.0] # 視点の位置
>   hpr = [-180.0,   0.0,   0.0] # 視線の方向
>   DrawStuff::DSLib.dsSetViewpoint(xyz.to_ptr("F"), hpr.to_ptr("F")) # カメラの設定
> -----
> この様にしてみましたが、
> -----
> (eval):5: [BUG] Bus Error
> ruby 1.8.6 (2007-03-13) [i686-darwin8.9.1]
>
> zsh: abort      ruby w.rb
> -----
> となってしまいました。
>
>
> SWIGの方はtypemapを使って何とかなりそうです。
> http://ruby.gfd-dennou.org/tutorial/swig/swig-f-5.html
> このページが参考になりました。
>
> 経過→http://d.hatena.ne.jp/urekat/20070619
>
>
>
> よろしくお願いします。
>
> 07/06/19 に sheepman<sheepman@sheepman.sakura.ne.jp> さんは書きました:
> > こんばんは、sheepman です。
> >
> > C 言語の float の配列への変換は
> >
> > [3.0, 0.0, 1.0].to_ptr('F')
> >
> > でしょうか。
> >
> > http://doc.loveruby.net/refm/api/view/method/Array/i/to_ptr
> >
> > --
> > sheepman / TAMURA Takashi
> > sheepman@sheepman.sakura.ne.jp
> >
> >
>
>

In This Thread

Prev Next