- blogs:
- cles::blog
ocra で Ruby スクリプトを exe に変換する
ruby
windows OCRA (One-Click Ruby Application)というツールを使うと windows 上で動く Ruby スクリプトを exe に変換出来るようなのでメモ。ちょっとしたツールを Ruby で書いたとしても、それを他人に配布したいと思ったときに Ruby の環境を用意してもらうのが大変だったりするのでそんなときに役立ちそうです。同様のツールとしては Exerb があったものの、こちらは意外と変換出来ないスクリプトが多かったりしたのですが、こちらはそれよりも成功率は高いみたいです。
REQUIREMENTS:
Windows
Working Ruby installation, tested with:
One-Click Installer (187_27_rc2)
RubyInstaller (1.8.7p299, 1.9.1p249, 1.9.2p0)
MinGW Installation (when working with the source code only)
上記の要求に従って RubyInstaller for Windows で Ruby をインストールして DevKit もセットアップしておきます。ocra 自身のインストールは gem install orca とするだけです。
使い方は ocra example.rb とすれば、ディレクトリに example.exe ができるので、これを他人に配布することができます。圧縮されてはいますが、殆ど何もしないアプリでも 3M くらいの大きさになるのでファイルサイズはちょっと大きめ。--windows オプションをつけると ruby.exe → rubyw.exe を使うようになるので、起動時にDOS窓が立ち上がらないようにすることができます。
IronRuby 1.0 がリリースされたのでインストールしてみた
ruby
windows Rubyの.net実装であるIronRuby 1.0がリリースされていました。
Rubyの.NET実装「IronRuby 1.0」リリース - SourceForge.JP Magazine : オープンソースの話題満載
IronRuby開発チームは4月12日、初めての安定版となる「IronRuby 1.0」を公開した。Microsoft Public License(Ms-PL)を採用、プロジェクトのWebサイトなどからダウンロードできる。IronRubyはRubyの.NET実装。米Microsoftが開始したプロジェクトで、Microsoftのスクリプト言語向けランタイムエンジン「Dynamic Language Runtime(DLR)」をサポートする。
IronRuby 1.0はRuby 1.8.6互換を目指し、高い互換性を備えているという。Ruby仕様との互換性をテストする「RubySpec」テストのスコアは85.94%とのこと。Ruby on Rails 2.3.5にも対応する。
本体はIronRubyプロジェクトサイトから、実行に必要となるMicrosoft .NET Framework 4はマイクロソフトのサイトからそれぞれダウンロードできるようです。
irbで動かして見た限りでは動作はかなりもっさりしているので、オーバーヘッドはそれなりにありそうです。
RubyからWin32APIを叩く
ruby
windows
cpp バッチの動作を自動化しようとしたら、DLLを読み込んでAPIを叩く簡単なアプリを書かなければならない事が判明したのですが、僕はWin32で動くアプリ(C#, VC++, VB)を書いた事がないので困ってしまいました。
それだけのためにWin32アプリの描き方を覚えるのもアレなので、いつもバッチ処理で使っているRubyを使ってなんとか済ませられないかと調べてみると「Win32API - Rubyリファレンスマニュアル」に"DLL dllname をロードし、API関数 proc のオブジェクトを生成"という部分を見つけたのでこれを何とか使えないかといろいろいじって見たのでメモ。あまり使っている人がいないのか、資料が少なくて大変でした。
† 練習はUNZIP32.DLLで
とりあえず本番用のものを開発する前に適当なDLLで練習がしたかったので、DLLと聞いてすぐに思いついた統合アーカイバプロジェクトのUNZIP32.DLL for windows 9x/Me/NT/200x/XPをRubyから呼び出してみることにします。
[RubyからWin32APIを叩く の続きを読む]- sadpkv
- CACHEMANAGER.phpというのはどうだろうかと
- pairb1m
- Lightning のToDoリストを複数のPCで共有できるアドオン
- majodca
- 九州旅行から帰ってきました
- majodca
- 九州旅行から帰ってきました
- hot534
- yum を使って OpenVPN をインストールする
- dresssu3
- NP_Trackbackを騙るトラックバックspamについて
- zippern7o
- NP_SpamBayesJP jp1b
- park81o
- Google Docs をメールフォームとして使う
- fogmpl
- なんで官庁の文章はPDFなんだろうか
- cutjw9
- 即席スライドショーを作る
- frightenlho
- 添付ファイルの容量を表示する「Attachment Sizes」
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(5067)
3 . GitHub が全ての公開リポジトリへのシークレットスキャンを有効に(4204)
4 . 年次の人間ドックへ(4136)
5 . 2023 年分の確定申告完了!(1つめ)(3994)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]
