1 名前:デフォルトの名無しさん [2006/08/08(火) 19:08:09 ] 他プラットホームとの互換性なんかいらん! 漏れはWindowsの上だけで快適に使いたいんだ! Windows独自の技術的な話題や、 Windows版だけのrubyの問題について語るスレ。 ■ruby www.ruby-lang.org/ja/ ■ruby関連スレ ・Rubyについて Part 22 (本スレ?) pc8.2ch.net/test/read.cgi/tech/1147897915/ ・Ruby初心者スレッドPart7 pc8.2ch.net/test/read.cgi/tech/1154077799/l50
267 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 18:39:08 ] 右クリックでlbuttonupが来ると?
268 名前:264-265 mailto:sage [2007/07/14(土) 18:48:10 ] レスありがとうございます。 >266 そうですよね。 普通イベントハンドラがデフォルトで定義されているのですが vruby の VRListview では定義されてないようです。 Spy++でみると、WM_RBUTTONDOWN, WM_RBUTTONUP などのメッセージは ListView に来てます。 >267 失礼・・。まずは lbuttonup で試してました。 rbuttonup と読み替えてください。 最終的にやりたいことは右クリックを拾う、です。 lv1_dblclicked が呼ばれると、なぜか lv1_lbuttonup が同時に後から呼ばれていることを発見。 ウィンドウメッセージは ListView に飛んできてるので おそらくは vruby 側で何か処理を足してやれば めでたくマウスの右クリックがとれるはずなので もうちょいがんばってみます。
269 名前:264-265 mailto:sage [2007/07/14(土) 20:55:07 ] う〜む…; VRComCtlContainer#self_wmnotify(msg) にいったんメッセージが飛んできて、ディスパッチされるらしい。 ハンドラの名前は VRNotifyControl#notifycontrolinit で登録されてる。 addNotifyHandler(0xfffffffe,"clicked",MSGTYPE::ARGNONE,nil) addNotifyHandler(0xfffffffd,"dblclicked",MSGTYPE::ARGNONE,nil) : (FormDesigner を使っているとわからないメソッド) MyForm#lv1_clicked を定義してみたら、イベントが飛んできて捕まえられました。 ただ lv1_lbuttonup(shift, x, y) と違って座標などがとれない。 MyListview クラスに include VRMouseFeasible すると、 リストビューをダブルクリックしたときにのみ MyListview2#self_lbuttonup(shift, x, y) がきちんと呼ばれる 不思議な現象になる。 たぶん理由があって、ちゃんと突き詰めれば動くのだろうけど、もういいぽ・・。 とりあえず lv1_clicked にて hittest を適当に処理することで 対処することに決めました。5 時間かかった〜…。
270 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 20:57:05 ] なにをごちゃごちゃやってるのか知らんけど VRubyのリファレンスちゃんと嫁
271 名前:264-265 mailto:sage [2007/07/14(土) 21:09:06 ] 正しい。 でもリファレンス嫁はちょっと漠然としてて範囲が広くてきっついよ。 ここ見れ、とか、メソッドやクラス名のヒントを つ[メソッド名] とかやってくれた方が助かるわー迷ってるんだから;
272 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 21:43:42 ] self_rbuttondown
273 名前:264-265 mailto:sage [2007/07/14(土) 22:59:03 ] >272 うぉぉ! できた! rbuttondown(shift, x, y) と lbuttondown(shift, x, y) は、 include VRMouseFeasible でとれた。 (buttonup 系はなぜかとれない) どうもありがとう!非常に助かりました m(_ _)m www.osk.3web.ne.jp/~nyasu/vruby/referer/vr/VRMouseFeasible.html ここにあるのはなんだ〜
274 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 23:24:17 ] おめでとう 漏れも >>264-268 見てたときは思い出さなかったんだけど >>269 の5時間かかった〜っていうのを見て 3年ほど前に同じ問題で半日ほどはまったことがあるのを思い出した
275 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 13:50:21 ] vruby でウィンドウが閉じるときに呼ばれるような onClose とか onDestroy ってどこかにありますか? X ボタンで閉じたときに終了処理をするイベントが拾えなくて 困ってるんですけど、msghandler をいじるしかないのかな? と思って grep したら include VRClosingSensitive して self_close で拾えばいいのか。OK。自己解決。
276 名前:デフォルトの名無しさん [2007/08/05(日) 11:49:21 ] .
277 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 18:07:24 ] メモ font = @screen.factory.newfont("MS Gothic", -13) self.class::const_set("DEFAULT_FONT", font) で、デフォルトフォント全変更
278 名前:デフォルトの名無しさん [2007/08/25(土) 09:33:44 ] >>258 試してみたいのですが、すでにうpろだから消えているような。。。
279 名前:デフォルトの名無しさん [2007/08/25(土) 09:34:41 ] >>66 vrubyで画面に出てくるところを動かすときは、GC.disableを一時的にするといいって聞いたことがある。
280 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 09:58:26 ] rbnamazuってどこからDLできますか? 本家のダウンロード、リンク切れになってる。 ttp://www.namazu.org/ruby-namazu/index.html.ja 昨夜から探して別のところで0.1を拾えただけ(最新0.4) ヘルプ!
281 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 10:25:25 ] >>278 どもです。 でも、趣味なのでもうプログラミング熱は冷めてしまいましたw gzm.s201.xrea.com/openport.zip
282 名前:デフォルトの名無しさん [2007/08/25(土) 17:50:24 ] >>281 ありがとうございます。いただいていきます。 まぁ、自分の勉強のために見たいという気持ちもあるのでっ。 使ってみてですが、「ポート解放失敗」(泣) プログラミング熱は冷めたとのことですが、Aterm WD701CVでの失敗を報告しておきます。
283 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 19:12:39 ] >>282 あらら、失敗しましたかw いやいや、私もRubyでソフトを作るのはこれが2作目です。 今度はC#をやろうと思い、挫折して、プログラミング熱が冷めましたw
284 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 04:43:00 ] FormDesignerで最大化ボタンオフでタブストップをやりたいと思ったのですができず… require 'vr/vruby' require 'vr/vrcontrol' class Form1 < VRForm def construct self.maximizebox=false self.caption = 'form1' self.move(140,124,335,218) addControl(VREdit,'edit1',"edit1",38,30,160,30,0x10000) addControl(VRButton,'button1',"button1",200,30,88,32,0x10000) end end VRLocalScreen.start Form1 WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX的なやり方って存在しないのですかね?
285 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 02:21:17 ] TABSTOPはダイアログでしか使えんよ。 そして、maximizebox=はダイアログでは使えんらしい。(なぜか) ちょっと書き換えるが、 require 'vr/vruby' require 'vr/vrcontrol' require 'vr/vrdialog' class Form1 < VRModalDialog def construct self.maximizebox=false self.caption = 'form1' self.move(140,124,335,218) addControl(VREdit,'edit1',"edit1",38,30,160,30,0x10000) addControl(VRButton,'button1',"button1",200,30,88,32,0x10000) end def maximizebox=(bool) #こぴぺ&修正 VRWinComponent::WinStyle.new(self).setter(WStyle::WS_MAXIMIZEBOX, bool) end end VRLocalScreen.openModalDialog nil,nil,Form1 かな。
286 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 16:39:41 ] FormDesignerだけど、例えばEditコントロールを貼っつけて、 マウスで適当にクリックしたりしてると、 勝手にコントロールの位置がずれたり、 サイズが小さくなったりするんだけど俺だけ? イライラするのですが回避方法ないでしょうか。
287 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 07:26:00 ] 俺もそれよくなる。 結局height値を直接打って元に戻すしか方法ないのかね。 VRTabbedPanelで各タブパネルの上でカラー選択ダイアログを直接呼び出そうとするとエラーがでるので @tab.send_parent2 1,"hoge","clicked" で親に渡してダイアログを呼び出してるんだけど、取得した色番号を元のパネルのEditに戻したいんだけど def tab_panel1_hoge_clicked @tab.panels[1].foo.text = chooseColorDialog.to_s end でできなくorz 親から孫を直接指定ってどうやるんですか?
288 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 21:06:44 ] それにしても、みんなよくVisualuRuby使う気になれるな 俺はApolloを先に使い始めたから、どうしてもVisualuRubyのAPIに慣れない 機能面の差はそんなにないと思うんだけど クラスやメソッドの構成に癖があって、非常に扱いづらい…… 慣れれば何とかなるのかな
289 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 03:47:04 ] >>287 親に渡さなくても直接タブパネルにコモンダイアログを呼び出せばOK 公式マニュアルにはないけど、カラー選択なら SWin::CommonDialog::chooseColor(nil, 0) で、出るはず。 >>288 VisualuRubyはexerbで固めるとdllなしのスタンドアロンツールが作れるからなぁ。 (gemとか使うとdllが必要だが) Apolloは別途Delphiの知識が必要な感じもするし、純粋なGUIプログラムなら大方はDelphiでできるし。 Delphi+Rubyの利点って正規表現をカバーぐらいしか思い浮かばない(無知でごめんよ) ただ、マニュアル面での充実や、Vistaを含めマルチプラットフォームの可能性は断然Apolloだろうね。
290 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 03:59:38 ] GtkにしたらVisualuRuby使う気なくなった ごめんよ
291 名前:デフォルトの名無しさん [2007/09/19(水) 08:26:46 ] > ただ、マニュアル面での充実や、Vistaを含めマルチプラットフォームの可能性は断然Apolloだろうね。 Apolloは、Windowsでしか動かないよ それと、更新されていないApolloは、Vista非対応のはず。(動くことは動くか) Delphi2007でコンパイルしなおさないといけないと思う
292 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 09:04:51 ] コード手書きでGUIとかありえない。 20年前じゃないだからさ。
293 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 23:43:03 ] HTMLやTcl/tk(Ruby/tkにあらず)なら手書きでも良いような気がする 要は現状でGUIを書きやすくて充実してるライブラリが無いって話じゃね?
294 名前:289 mailto:sage [2007/09/20(木) 02:16:54 ] >>291 言葉足らずでごめん、VisulauRubyはwin32べったりだから、比較対象として選択肢がDelphi でコンパイルできたりすることも可能という『可能性』ってことね。 (断然って言い方がマズかったorz) > コード手書きでGUIとかありえない。 どこまでのプログラムを手書きと言うのか分からないけど、少なくともVisualuRubyにはFormDesigner というGUIビルダがあるのがあるし、ApolloもDelphiのGUIビルダが使えるし、完全に一から手書きし てるというわけでもないのでは? 自分は邪道編を見て、webもGUIもできる言語って凄いと思ってRubyを使い出したので(当時は他 のLLでもGUIできるって知らなかった) Ruby自体がGUIプログラムをやるための言語ではないが、マニュアルが極端に少ないってが問題の1つだと思うよ。
295 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 03:52:12 ] >>294 「断然って言い方」だけじゃなくて、通常そういうのはマルチプラットフォー ムとはいわんから、用語や日本語の使いかたがマズかったのでは。
296 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 12:26:42 ] vrubyとMozilla ActiveX Controlを使ってgeckoエンジンのwebブラウザを作成したいのですが ACTIVEXCINFOでできますか? smpleだとIEの例はあるのですが、ACTIVEXCINFOが分からず四苦八苦しているので、どのよ うに調べれはよいのですか?
297 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 07:12:54 ] vrubyってクラシックな視覚スタイルしか作れないのですか? 無いとしたら、今後XP(Luna)やVista(Aero)の対応予定とかありませんか? # Ruby/TkだとTileを使えばXP風味になりました # Ruby初心者スレから誘導されてきました
298 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 09:30:28 ] >>297 XP風にするだけならvrubyに限らずこの方法でいける ttp://www.lhut32.com/WinXP.html
299 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 14:04:23 ] >>296 ACTIVEXCINFO =["Mozilla.Browser","DWebBrowserEvents"]
300 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 14:10:26 ] ACTIVEXCINFOは、ものすごく効率が悪いけど soleb ttp://homepage1.nifty.com/markey/ruby/win32ole/index.html で、それっぽいの(これが難しい)を探せばなんとかなります。
301 名前:デフォルトの名無しさん mailto:sage [2007/09/25(火) 03:30:08 ] >>299 おお、これでサンプルを変更したら動きました。 ありがとうございます。 >>300 効率が悪いとは具体的にどうしてでしょうか? solebでCOMから扱うとなると、実際にはdllだけではなくMozillaそのものをDLして 埋め込むという感じになると思うのですが、やりたいことはWEBrickでプロキシ通 信したものをgeckoエンジン表示させたいのですが…
302 名前:デフォルトの名無しさん [2007/09/26(水) 12:47:16 ] solebはActiveXコントロールの情報も出ますよ。 ただ、むちゃくちゃイッパイ情報が出るので、 探すのが効率悪い。
303 名前:デフォルトの名無しさん [2007/09/26(水) 14:18:57 ] Windowsで現在実行中のプロセスを列挙したいのですがどうすればいい? Win32APIのEnumProcessesとかを使うと出るらしいが 使い方がわからん。 使い方をおせーて
304 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:28:48 ] Windows NT系上での実行を想定してるんですが、 キャラクタセットについて下記の2案だとどっちが良いと思いますか? 案1 ・ソースプログラムをUTF8で書く ・Ruby/TkへStringを投げるときはそのまま ・コマンドプロンプトへStringを出力するときはSJISへ変換してやる 案2 ・ソースプログラムをSJISで書く ・Ruby/TkへStringを投げるときはUTF8へ変換してやる ・コマンドプロンプトへStringを出力するときはそのまま
305 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 16:45:47 ] と思ったけどプログラムコードの先頭で #! ruby -Ks って指定してやれば勝手にやってくれるのね・・・
306 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 06:42:19 ] >>303 pc11.2ch.net/test/read.cgi/tech/1189255282
307 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 01:06:07 ] たぶんActiveScriptRuby1.8.637に更新してからだと思うけど VisualuRuby使ったプログラムで 定数の再定義警告が出るようになりました。 ただ、Rubyインタプリタで実行したときは 警告されません。 Exerbで作った実行ファイルを実行したときに 警告が出ます。 俺だけなのかなぁ?
308 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 06:38:02 ] Ruby/Tkとvrubyを混在させるにはどうしたらいいの? Tk.mainloop と VRLocalScreen.messageloop を一緒に走らせないとならないっぽいんだけど無理かな?
309 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 10:32:16 ] >>307 > VisualuRuby使ったプログラムで > 定数の再定義警告が出るようになりました。 再現できるソースはない?
310 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:16:05 ] >>309 test.rb --- require 'swin' require 'vr/vrcontrol' require 'vr/vrdialog' --- これをrubyインタプリタで実行しても警告は出ない (-W2オプション付きでも) (続く)
311 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:23:15 ] test.exy --- general: startup: test.rb core: cui kcode: sjis file: test.rb: Win32API.so: file: C:\Ruby\lib\ruby\1.8\i386-mswin32\Win32API.so type: extension-library swin.so: file: C:/Ruby/lib/ruby/site_ruby/1.8/i386-msvcrt/swin.so vr/vruby: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\vruby.rb vr/winconst: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\winconst.rb vr/compat/rubycompat: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\compat\rubycompat.rb vr/rscutil: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\rscutil.rb vr/contrib/vrwincomponent: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\contrib\vrwincomponent.rb vr/vrcontrol: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\vrcontrol.rb vr/sysmod: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\sysmod.rb vr/compat/vrcontrol.rb: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\compat\vrcontrol.rb vr/vrdialog: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\vrdialog.rb ---
312 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:26:15 ] >>311 のレシピファイルを使ってexerbで実行ファイルを作って それを実行すると vr/vrcontrol:1217: warning; already initialized constant WM_VSCROLL などが出る。 (全角スペースでインデントしています。半角に変換して使ってください。) まあ、エラーじゃないので、特に問題は無いんですけど、 なんか心臓に悪い。
313 名前:デフォルトの名無しさん [2007/10/22(月) 17:44:18 ] ttp://www.itmedia.co.jp/enterprise/articles/0710/22/news002.html ttp://itpro.nikkeibp.co.jp/article/NEWS/20071022/285089/?ST=oss ttp://itpro.nikkeibp.co.jp/99/ruby/index.html
314 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 16:07:27 ] RubyをMac OS Xで使うスレが無いのが寂しい Ruby/Cocoa使いとか居ない?
315 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 19:03:14 ] >>314 "ruby cocoa" site:2ch.net でググると いくつかのスレで話題になっているようですね。 必要であればスレ立てしてみてはいかがでしょう。
316 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 19:16:56 ] RubyCocoaは明日から本番だしな。ちょうどいいんじゃね?
317 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 01:53:10 ] img.baguwen.org/061217/20061217213838751.jpg
318 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 06:29:51 ] これ中国の修行僧が作った道だっけ?
319 名前:デフォルトの名無しさん [2007/11/14(水) 01:55:36 ] ActiveSupportのようにライブラリを動的に読み込むスクリプトを、 exerbで実行ファイル形式にする方法ない?
320 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 13:17:53 ] 必要なやつを全部レシピに追加しとけば?
321 名前:デフォルトの名無しさん [2007/11/15(木) 01:31:37 ] 便乗質問なのですが、hpricotっていうライブラリはc言語をコンパイルしたものが 含まれているって聞いたのですがそういうのもexerbに取り込むことが出来るのでしょうか。
322 名前:デフォルトの名無しさん [2007/11/16(金) 00:52:44 ] >321 全然オッケー
323 名前:デフォルトの名無しさん [2007/11/29(木) 11:10:51 ] "Adding Ruby to the .NET stable of languages and unlocking .NET to Ruby programmers." rubydotnet.googlegroups.com/web/Home.htm Breaking News! (20th November 2007) Ruby.NET version 0.9 has just been released
324 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 13:33:37 ] Windows における Ruby 開発環境の構築 taylor.gotdns.org/ruby.html
325 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 13:50:52 ] >>323 とりあえず、VS2005ProにVS2005SDKとRuby.NET、VSRuby.NETをインストールしても、 VSに統合されなかったということだけは報告しておこう。
326 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 14:38:55 ] >>325 スタート > すべてのプログラム > Ruby.NET > Visual Studio (for Ruby)
327 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 16:27:44 ] >>326 おお、動いた。ありがとう。 とりあえず、Windowsアプリケーションで、ButtonとListboxをFormに貼り付けて Clickイベントを書いたら動いた! (大文字小文字をちゃんとしないといけないんだね・・・) def button1_Click(sender,e) listBox1.Items.Add(Time.now.to_s) end だが、ビルドもプロジェクトの保存もできない・・・。 休みの間にドキュメント読もう。
328 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:37:39 ] 俺も使えた。 でも、インテリセンスが効かないのが最悪。しかも大文字小文字を区別するし。
329 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 12:16:28 ] >>328 > しかも大文字小文字を区別するし。 Ruby用のIDEで区別しなかったら使いものにならんだろ。
330 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 12:48:32 ] >>329 .NETのメソッドヤプロパティが全てcase sensitiveなのは使いづらい。
331 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 14:59:27 ] >>330 Ruby.NET的にはそういうのはどうなんの? 大文字のと小文字のメソッドが全部定義されてる?
332 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 15:01:16 ] >>331 定義されていない。 いちいちAdditemなのかAddItemなのかを調べる必要がある。
333 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 16:45:30 ] え、インテリセンス使いまくりな俺には厳しい仕様だなー
334 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 22:55:31 ] >>332 > 定義されていない。 てことはmethod_missing使って呼び出す?
335 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 01:21:38 ] >>310 を書いた者ですが、 vr/vruby: などと書いているところを vr/vruby.rb: というように拡張子まで含めて書くと 警告が出なくなりました。 というか、何で含めて書かなかったのだろう。 んー。
336 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:34:35 ] Rubyist Magazine出張版 Ruby on Windows www.amazon.co.jp/dp/4839926689/
337 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 20:52:08 ] (追記) Windows における Ruby のバイナリ互換性について ビルド環境として MinGW、 VC++6、VC++7、VC++8を考えます。 で、ちゃんと検証したわけではありませんが、おそらく以下が成立するはずです。 MinGWで作ったRubyとVC++6で作った拡張ライブラリは一緒に使える。逆も可。 MinGWで作ったRubyとVC++7で作った拡張ライブラリは一緒に使えない。逆も不可。 MinGWで作ったRubyとVC++8で作った拡張ライブラリは一緒に使えない。逆も不可。 VC++6で作ったRubyとVC++7で作った拡張ライブラリは一緒に使えない。逆も不可。 VC++6で作ったRubyとVC++8で作った拡張ライブラリは一緒に使えない。逆も不可。 これは利用されるC Runtime libraryの種類が問題になっています。 一応Windowsには異なるビルド環境で作ったオブジェクトファイルを混ぜても 「だいたい」問題なく動作させるための機構があるらしいのですが、 Rubyの場合問題が起こる部分を使っている、ということらしいです。 最近のRubyでは、ビルド時に異なるビルド環境を使おうとしてもできないような 対策が施されています。 そこで、バイナリ配布されているrubyの処理系は大半がVC++6かMinGW で ビルドされているため、人に配布するためのバイナリを作るのであれば このどちらかを使うべき、ということになります。 ttp://www.kmc.gr.jp/~ohai/diary/?date=20070305
338 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 21:11:39 ] >>337 それがどうかしたか?
339 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:33:10 ] >>337 VC7とVC8間も互換性ないからな。 VC9も同様。
340 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 03:26:16 ] >>339 VC8 なんてSPのあるなしでも互換性がないんじゃなかったっけ?
341 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 10:55:26 ] >>340 ない。
342 名前:デフォルトの名無しさん [2007/12/10(月) 16:10:11 ] Ruby+vruby+exerbで最適な画像処理用ライブラリって何でしょうか。 jpgを読みこんで、パレットをいじったりして、bmpで出力したいのですが。。。
343 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 19:33:35 ] >>342 rcairoかrmagick
344 名前:デフォルトの名無しさん [2007/12/11(火) 21:52:43 ] >>337-339 知らんかった DLL化された拡張ライブラリの話しだよね? 困るかも
345 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:21:49 ] >>344 文句があるならMicrosoftへ。
346 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:30:40 ] ttp://www.garbagecollect.jp/~usa/d/200712b.html#id20071213_P1 >_ なんかいろいろ言ってる間に[ruby-core:14039]が。 > >Anyway, the MinGW guys just commited a few changes that will allow you >target specific MSVCRT versions with the same compiler, removing the >pain to create extensions with gcc for ruby build with VC6/8/9. > >ですってよ。マジすか。福音キター! > >_ こうなってくると前提が変わってきて、mingwがMSVCRT.dllとリンクするからVC6が望ましい、という理屈は成立しなくなるんだよね。 >じゃあみんなでVC9に行ってみる?
347 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 20:15:52 ] Cで拡張ライブラリを書いたときに、拡張ライブラリから関数ポインタを返してRuby側でその関数を実行するにはどうしたらいいですか。
348 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 20:59:03 ] そんなことよりモジュール関数にするとか
349 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 01:37:03 ] 関数ポインタをRuby上で表現できるようなクラスを書くしかないと思うけど。 でも結局DLの車輪の再発明のような気がする。
350 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 07:50:10 ] >>348 >>349 つまり直関数ポインタそのものを渡してもRuby側で実行できなくて、 たとえば拡張ライブラリを以下のようにするしかないってことですか。 //これをRuby側で実行したい。 hoge (*pf)(hage x); //これをエクスポートしてRuby側で使う。 hoge f(hage x) { if(pf)return pf(x); else return moge; }
351 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 08:08:29 ] 拡張ライブラリの作り方くらい読めよ
352 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:37:13 ] >>350 そもそも、どうして関数ポインタをRuby上で扱いたいの?
353 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:40:16 ] 関数ポインタをシェルスクリプトに返しても呼べないが如し
354 名前:350 mailto:sage [2007/12/19(水) 18:16:05 ] レスありがとうございます。 >>351 >>350 のソースはSWIGにかけてからdllを生成するつもりだったんですが、その点を書くのを忘れました。ごめんなさい。 >>352 どうして関数ポインタをRuby上で扱いたいかというと、既存のC++のクラスに関数ポインタのメンバがあって、 それをRubyでも使いたかったんです。 >>353 関数ポインタは使えないのですね。 とりあえずC++のソースの追加は必要ですが、>>350 のようにやればRubyでも使えるようになると思っているので それでやって見ます。もっと楽な方法があったら教えてください。
355 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 20:31:50 ] Windowsだったらsuikyoってゆーローマ字変換ライブラリは使えませんか??
356 名前:350 mailto:sage [2007/12/25(火) 20:31:37 ] すいません。350です。 また教えてください。 とりあえず簡単な拡張ライブラリを作ったのですが、なぜかloadできません。 mytest.soというファイルをカレントディレクトリにおいて 以下のようなスクリプトを流すと以下のようになります。 ----スクリプト----- f=open('./mytest.so') p f require './mytest' ----結果---------- #<File:./mytest.so> ./mytest.so: No such file or directory - ./mytest.so (LoadError) from test.rb:3 ------------------- openではファイルが開けるのにrequireでは見つからないといわれてしまいます。 なにが悪いのでしょうか。 環境はwinXP+cygwinです。 rubyのバージョンは1.8.4 (2005-12-24) [i386-cygwin]です。
357 名前:デフォルトの名無しさん [2007/12/26(水) 04:18:49 ] $LIB_PATH には、./は入るんじゃなかったけ? $SAFEが1以上なら、入らんみたいだが・・・
358 名前:デフォルトの名無しさん [2007/12/26(水) 04:19:21 ] とりあえず、プロンプトで、これどうなります? $ ruby -e 'puts $:'
359 名前:350 mailto:sage [2007/12/26(水) 07:25:56 ] >>358 以下のようになりました。 /usr/lib/ruby/site_ruby/1.8 /usr/lib/ruby/site_ruby/1.8/i386-cygwin /usr/lib/ruby/site_ruby /usr/lib/ruby/1.8 /usr/lib/ruby/1.8/i386-cygwin .
360 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 01:06:46 ] ちゃんと、最後に、 ". "が入っているから、 上手くいくはずなんだがな・・・
361 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 05:29:34 ] ファイルが見つからないんじゃなくて、mytest.soをDLLとしてロードできない何らかの理由があるんじゃないかな。 Init_mytestという関数がないとか、mytest.soが依存している他のDLLが動的リンクできないとか。
362 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:08:01 ] >>361 ロードできました。ありがとうございます。 原因はずばりInit_mytestがない、でした。 SWIGで生成したmytest_wrap.cxxではInit_MyTestという関数になっていて これをInit_mytestにリネームすることで動くようになりました。 (あと #define SWIG_Init Init_MyTestのところもリネームしました) mytest.iの書き方がまずかったためにこのようなことになったのでしょうか。 mytest.iは以下です。 %module MyTest %{ #include "test.h" %} %include "test.h" swigへの引数は-c++ -ruby mytest.iです。
363 名前:350=362 mailto:sage [2007/12/27(木) 10:19:06 ] とりあえず %module MyTest のところを %module mytest にすると上手くいくようです。 モジュール名は大文字で始めなければいけないという先入観がありました。
364 名前:デフォルトの名無しさん [2007/12/27(木) 22:15:16 ] ttp://arton.no-ip.info/diary/20071227.html#p03 Ruby-1.9.0.msi ASRやExerbはもちろん、Visualu Rubyなども入っていない素のMSVCRT(VC++6SP5)版のRuby 1.9.0になります。 以下が含まれます。サイズは15MB近くとでかいので注意。 ・1.9.0 リファレンスマニュアル (chm版) ・include、lib、riなど1.9.0のnmake install対象すべて。rbconfig.rbは修正が必要かも ・Vista対応 ・openssl(0.9.8g) ・readline ・zlib ・iconv(1.9.1) ・tcltk84用tcltklib.so ・この忙しいのにしっかりと入ったgoruby 再配布もご自由にどうぞ。 なお、アンインストールには信じられないくらいの時間がかかります。
365 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 22:23:10 ] ゴルビーってなんやねん
366 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 04:49:31 ] 俺は全然まとはずれな、答えしてたのね orz DLLの中美香
367 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:40:29 ] artonさんとこのインスコして うきうきわくわく ruby -e "t=Time.now; 100000.times{}; puts Time.now - t" ってやったら 1.8の方が速かった しょぼーん(´・ω・`)