ページ 11

C++上でRubyの入出力関数を使うとエラーが出る

Posted: 2014年12月05日(金) 22:21
by akindo
C++上でRubyを使う事は出来たのですが、何故かprintfやputsといったRubyの入出力関数を使うと
「ハンドルされない例外が 0x77AF224D (ntdll.dll) で発生しました(Project4.exe 内):
 0xC0000005: 場所 0x00000014 への書き込み中にアクセス違反が発生しました。」
と出てエラーが出て止まってしまいます。一体何故でしょうか?
インターネットで調べても何故起きるのか全く分かりませんでした。
ソースコードは以下の通りです。

コード:

 
#pragma comment(lib, "msvcr120-ruby210")
#pragma comment(lib, "msvcr120-ruby210-static")

#include <ruby.h>
void main()
{
	// Rubyインタプリタの初期化
	ruby_init();

	// スクリプトの実行
	rb_eval_string("print 'Hello World!'");

	// Rubyインタプリタのクリーンアップ
	ruby_cleanup(0);
}


下記のサイトを参考にしました。宜しくお願いします。
http://funktor.org/programming/cpp/embe ... by.ja.html

Re: C++上でRubyの入出力関数を使うとエラーが出る

Posted: 2014年12月05日(金) 23:28
by h2so5
ライブラリを2種類読み込んでいるのは正しいのでしょうか。ふつう片方だけだと思うのですが。

Re: C++上でRubyの入出力関数を使うとエラーが出る

Posted: 2014年12月06日(土) 09:42
by akindo
片方だけにしても、同じエラーが出ました。

Re: C++上でRubyの入出力関数を使うとエラーが出る

Posted: 2014年12月08日(月) 23:14
by akindo
ほかの掲示板に変わりますから、このスレッドを閉めます

Re: C++上でRubyの入出力関数を使うとエラーが出る

Posted: 2014年12月09日(火) 17:33
by ISLe()
ライブラリと生成オプションが違うとか。