[1.9.1p243]Probleme beim Einbetten von Ruby

21/09/2009 - 13:37 von Uwe Matthaeus | Report spam
Hallöchen,

ich bin gerade an der Umstellung von 1.8 auf 1.9. Ich habe Ruby mit VS2005 übersetzt
und alle Tests sind ok. Das Einbetten des Interpreters klappt nicht. Selbst einfachste
Dinge gehen nicht. Mit Version 1.8 war das überhaupt kein Problem. Hier ein Beispiel:

int main( void )
{
ruby_init();
ruby_init_loadpath();

int status = -1;

// folgende Zeile gibt eine access violation
// rb_load_protect( rb_str_new2("test.rb"), 0, &status );

// folgende Zeile gibt auch eine access violation
rb_load_file( "test.rb" );

ruby_finalize();

}


Ganz egal ob ich noch 'RUBY_GLOBAL_SETUP' und 'RUBY_INIT_STACK' einbaue es gibt keine
Veraenderung.
Hat jemand einen Vorschlag? Vielen Dank im Voraus.

Uwe
 

Lesen sie die antworten

#1 Uwe Matthaeus
23/09/2009 - 17:09 | Warnen spam
On Mon, 21 Sep 2009 13:37:04 +0200, Uwe Matthaeus wrote:

Hallöchen,

ich bin gerade an der Umstellung von 1.8 auf 1.9. Ich habe Ruby mit VS2005 übersetzt
und alle Tests sind ok. Das Einbetten des Interpreters klappt nicht. Selbst einfachste
Dinge gehen nicht. Mit Version 1.8 war das überhaupt kein Problem. Hier ein Beispiel:

int main( void )
{
ruby_init();
ruby_init_loadpath();

int status = -1;

// folgende Zeile gibt eine access violation
// rb_load_protect( rb_str_new2("test.rb"), 0, &status );

// folgende Zeile gibt auch eine access violation
rb_load_file( "test.rb" );

ruby_finalize();

}


Ganz egal ob ich noch 'RUBY_GLOBAL_SETUP' und 'RUBY_INIT_STACK' einbaue es gibt keine
Veraenderung.
Hat jemand einen Vorschlag? Vielen Dank im Voraus.

Uwe



So funktioniert es nun:

int main( int argc, char **argv )
{
NtInitialize(&argc,&argv);
ruby_init();
ruby_init_loadpath();
ruby_script("embed");

int status = -1;

// folgende Zeile gibt eine access violation
// rb_load_protect( rb_str_new2("test.rb"), 0, &status );

// folgende Zeile gibt auch eine access violation
rb_load_file( "test.rb" );

ruby_finalize();

return 0;
}

Uwe

Ähnliche fragen