From: Kazuhiro Yoshida Date: 2003-06-04T11:43:16+09:00 Subject: [ruby-dev:20321] Re: Apollo.exeでsingleton_method_addedが効かない もりきゅうです。 やはりDelphiでは検証できないので^^; Rubyをいじってみました。 win32/winmain.c: -- #include #include extern int winmain(int, char**, char**); int WINAPI WinMain(HINSTANCE current, HINSTANCE prev, LPSTR cmdline, int showcmd) { return winmain(0, NULL, NULL); } -- main.c:(追加) -- int winmain(argc, argv, envp) int argc; char **argv, **envp; { #ifdef _WIN32 NtInitialize(&argc, &argv); #endif #if defined(__MACOS__) && defined(__MWERKS__) argc = ccommand(&argv); #endif ruby_init(); // ruby_options(argc, argv); ruby_init_loadpath(); ruby_set_argv(argc, argv); // ruby_run(); ruby_script("foo.rb"); rb_load(rb_str_new2("foo.rb"), 0); return 0; } -- このように、Apollo.exe と同じ手順で呼び出しを行う winmain() を作りました。 foo.rb: -- F = open('foo.txt','w') F.puts Time.now class Foo def singleton_method_added(name) F.puts "singleton method \"#{name}\" was added" end end obj = Foo.new def obj.foo end -- C:\>ruby -vd foo.rb ruby 1.8.0 (2003-05-26) [i386-mswin32] C:\>type foo.txt Wed Jun 04 11:36:39 東京 (標準時) 2003 singleton method "foo" was added C:\>rubyw -vd C:\>type foo.txt Wed Jun 04 11:36:52 東京 (標準時) 2003 C:\> 再現できているようなのですが、何かわかりますか。 ---- YOSHIDA Kazuhiro moriq@moriq.com http://www.moriq.com/