ページ

2014年9月29日月曜日

Ruby 覚え書き 5

VC++からRubyを使う

VC++からRubyを使いたくて、あーだこーだやりつつやっとできたのでメモ。
環境 : VisualStudio 2010 Profeccional
           ruby-2.0.0-p576  ※dllやlibはコンパイル済み 忘れた場合はこちら


通常のコンソールアプリ同様、ruby_init()してruby_finalize()で終わるような処理を
書いてみる。

   CWinAppのInitInstance()メソッドの中で、
    1. ruby_init();
 
    2. メインダイアログの生成、表示
    3. ruby_finalize();

というシンプルな処理なのだが、いざ実行すると、













なんだか意味不明なエラーにorz
落ちている箇所はここ














vm->prognameがnullっぽい。
そんなの知らね~よと思っていたのですが、色々調べてやっと解決。
どうやらruby_init()の前にruby_sysinitをしてやらないとダメらしい。

    int         sysinit_argc = 0;
    char**      sysinit_argv = NULL;
    ruby_sysinit( &sysinit_argc, &sysinit_argv );
    ruby_init();

ダミーのパラメータで初期化してやって、やっと動きましたorz

















0 件のコメント:

コメントを投稿