【ActiveScript】Ruby ..
[2ch|▼Menu]
237:デフォルトの名無しさん
07/07/03 11:14:21
>>236
具体的にはどの辺が?

238:デフォルトの名無しさん
07/07/03 13:21:47
LLP64では、ポインタだけが64ビットになります。int型とlong型は32ビットのままです。

239:デフォルトの名無しさん
07/07/03 13:56:16
>>238
そんなことはこの話についてこれるやつは全員承知してると思う。
鬼車のコード中の sizeof (long) == sizeof (void*) を決め打ちしてるところの例を教えて欲しい。

240:デフォルトの名無しさん
07/07/03 14:21:09
通りがかりですが、話を見て64でコンパイルだけしてみました
warningは↓の3つ出ました

regcomp.c:557: warning: cast from pointer to integer of different size
regexec.c:1734: warning: cast from pointer to integer of different size
regexec.c:1799: warning: cast from pointer to integer of different size

241:デフォルトの名無しさん
07/07/03 14:24:22
原因はこれですね
#define GET_ALIGNMENT_PAD_SIZE(addr,pad_size) do {\
(pad_size) = WORD_ALIGNMENT_SIZE \
- ((unsigned int )(addr) % WORD_ALIGNMENT_SIZE);\
if ((pad_size) == WORD_ALIGNMENT_SIZE) (pad_size) = 0;\
} while (0)

#define ALIGNMENT_RIGHT(addr) do {\
(addr) += (WORD_ALIGNMENT_SIZE - 1);\
(addr) -= ((unsigned int )(addr) % WORD_ALIGNMENT_SIZE);\
} while (0)

242:デフォルトの名無しさん
07/07/03 14:28:20
これだけなら影響はなさそうですけどね。
まあサラっと見ただけですが

243:デフォルトの名無しさん
07/07/03 14:59:48
あ、すみません。
私の環境では long が64ビットなので、int の部分しかあぶりだせませんでした。

244:デフォルトの名無しさん
07/07/03 15:05:18
>>241
x64だとPLATFORM_UNALIGNED_WORD_ACCESSがdefineされるから該当コードは存在しない。

245:・∀・)っ-○◎●
07/07/04 22:35:04
怖ぇだろ常識的に考えて

246:デフォルトの名無しさん
07/07/05 00:12:16
ようするに根拠はない、と。

247:デフォルトの名無しさん
07/07/05 00:22:50
ダンゴ使えねぇ〜

248:デフォルトの名無しさん
07/07/05 02:37:21
使えないどころか、害悪だな。糞以下。

249:デフォルトの名無しさん
07/07/09 22:35:10
ここ↓から、HTML help for VisualuRuby (JA)というのをダウンロードしたのですが、
何も表示されません。自分の環境が悪い?

Ruby
URLリンク(homepage3.nifty.com)

250:デフォルトの名無しさん
07/07/09 23:41:17
うちも何も表示されません。
HTML Helpの作成ミスでは?


251:デフォルトの名無しさん
07/07/10 10:38:31
うちは出るなあ。

HTML Help Control Version 4.74.9273

252:・∀・)っ-○◎●
07/07/10 21:46:04
>>246
64bitアドレス型から32bit整数へのキャストがある時点で怖い怖い。

253:デフォルトの名無しさん
07/07/11 09:35:08
>>250
やっぱ見れないですか。

>>251
見れる人もいるんだ。

超初心者だからヘルプがないとよく分からない。。。orz

254:デフォルトの名無しさん
07/07/11 14:58:05
>>252
だからどこにあるんだよ

255:デフォルトの名無しさん
07/07/11 17:58:05
Visualu RubyのFormdesignerのヘルプってないですかね?
質問があります。

FormdesignerのEditというコントローラ?、フォームの上に置くテキスト入力
できるやつです。

数字(ポート番号とIPアドレス)を入れるようにしているんですけど、入力制限
したいんですよね。

例えば、ポート番号なら1〜65535、IPアドレスなら1〜255、という感じに。
どのようにすればいいのでしょうか?

256:デフォルトの名無しさん
07/07/11 21:13:13
win32/config.hをテキトーにx64用に書きなおしてビルドしてみ?
小さい型へのキャストの警告でまくるから。

257:デフォルトの名無しさん
07/07/11 21:33:02
テキトーに書き換えないで真面目にx64版をビルドすりゃいいと思うんだが。

258:デフォルトの名無しさん
07/07/11 21:48:02
試行錯誤しながら何とかできました。
勉強用で、ルータのUPnPを利用してポートを開放するスクリプトを作りました。

自分のバッファローのWHR-G54Sではうまく動作しました。
他のルータでもうまく動作するかの確認をお願いします。

VisualuRubyが動く環境で実行できます。
ファイルは↓です。

URLリンク(www.uploda.org)

”OpenPort.rb”を実行してもらえれば、GUI画面が立ち上がります。

259:デフォルトの名無しさん
07/07/11 21:58:53
config.hの書き換えだけで対応できないからこそ型サイズ決めうちなんだろ。

260:デフォルトの名無しさん
07/07/11 22:24:33
>>252
怖いのはお前の顔面だろカス

261:デフォルトの名無しさん
07/07/11 23:36:01
x64 windows版が既にマージされてるという事実を見るだけで、
明確な根拠を示せない批判が全て無意味になるんだが。
config.hがどうこうとか言ってる奴は書き換え方が悪いんだろ。

262:デフォルトの名無しさん
07/07/12 00:56:11
>>249 ファイルのプロパティに「ブロックの解除」ってボタン無いですか?
解除しないとhtmlhelpがちゃんと開けないようです。

263:デフォルトの名無しさん
07/07/12 08:42:15
>>262
ありがとう。
その通りでした。

264:デフォルトの名無しさん
07/07/14 17:34:15
vruby で ListView をいじってるんですが、
マウスのクリックイベントって拾えませんか?
ダブルクリックは拾えるみたいですが、右クリックも拾いたいのです。

require 'vr/vrcontrol'
require 'vr/vrcomctl'
require 'vr/vrhandler'

class MyListview <VRListview
  include VRMouseFeasible
  def vrinit
    super

    addColumn("name",120)
    insertColumn(1,"ext",50)
    addColumn("size",80)
    addColumn("atime",120)
    insertMultiItems(0,[ [["test2","dat"],0], [["foo","bar"],1] ])
  end
end


265:デフォルトの名無しさん
07/07/14 17:35:27
module MyForm
  def construct
    self.move(10,10,600,400)
    self.caption="TreeList TEST"
    addControl(MyListview,"lv1","lv", 0, 0, 300, 400)
  end

  def lv1_dblclicked
    p 'dblclicked'
  end
  def lv1_lbuttonup(shift,x,y)
    p [shift,x,y]
  end
  def lv1_columnclick(subitem)
    p subitem
  end
end

frm=VRLocalScreen.newform
frm.extend MyForm
frm.create.show
VRLocalScreen.messageloop

こんな感じでやっても、lv1_lbuttonup に処理がこないのです。

266:デフォルトの名無しさん
07/07/14 18:37:47
vrubyはしらんけどdelphiのlistviewにはonmousedownというイベントがあって通常それで拾う。

267:デフォルトの名無しさん
07/07/14 18:39:08
右クリックでlbuttonupが来ると?

268:264-265
07/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
07/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:デフォルトの名無しさん
07/07/14 20:57:05
なにをごちゃごちゃやってるのか知らんけど
VRubyのリファレンスちゃんと嫁

271:264-265
07/07/14 21:09:06
正しい。
でもリファレンス嫁はちょっと漠然としてて範囲が広くてきっついよ。
ここ見れ、とか、メソッドやクラス名のヒントを
つ[メソッド名]
とかやってくれた方が助かるわー迷ってるんだから;

272:デフォルトの名無しさん
07/07/14 21:43:42
self_rbuttondown

273:264-265
07/07/14 22:59:03
>272
うぉぉ! できた!
rbuttondown(shift, x, y) と lbuttondown(shift, x, y) は、
include VRMouseFeasible でとれた。
(buttonup 系はなぜかとれない)
どうもありがとう!非常に助かりました m(_ _)m

URLリンク(www.osk.3web.ne.jp)
ここにあるのはなんだ〜

274:デフォルトの名無しさん
07/07/14 23:24:17
おめでとう

漏れも
>>264-268
見てたときは思い出さなかったんだけど
>>269
の5時間かかった〜っていうのを見て
3年ほど前に同じ問題で半日ほどはまったことがあるのを思い出した



275:デフォルトの名無しさん
07/07/16 13:50:21
vruby でウィンドウが閉じるときに呼ばれるような
onClose とか onDestroy ってどこかにありますか?
X ボタンで閉じたときに終了処理をするイベントが拾えなくて
困ってるんですけど、msghandler をいじるしかないのかな?

と思って grep したら
include VRClosingSensitive
して self_close で拾えばいいのか。OK。自己解決。

276:デフォルトの名無しさん
07/08/05 11:49:21
.

277:デフォルトの名無しさん
07/08/19 18:07:24
メモ
font = @screen.factory.newfont("MS Gothic", -13)
self.class::const_set("DEFAULT_FONT", font)
で、デフォルトフォント全変更

278:デフォルトの名無しさん
07/08/25 09:33:44
>>258
試してみたいのですが、すでにうpろだから消えているような。。。

279:デフォルトの名無しさん
07/08/25 09:34:41
>>66
vrubyで画面に出てくるところを動かすときは、GC.disableを一時的にするといいって聞いたことがある。

280:デフォルトの名無しさん
07/08/25 09:58:26
rbnamazuってどこからDLできますか?
本家のダウンロード、リンク切れになってる。
URLリンク(www.namazu.org)
昨夜から探して別のところで0.1を拾えただけ(最新0.4)
ヘルプ!

281:デフォルトの名無しさん
07/08/25 10:25:25
>>278
どもです。
でも、趣味なのでもうプログラミング熱は冷めてしまいましたw

URLリンク(gzm.s201.xrea.com)

282:デフォルトの名無しさん
07/08/25 17:50:24
>>281
ありがとうございます。いただいていきます。
まぁ、自分の勉強のために見たいという気持ちもあるのでっ。

使ってみてですが、「ポート解放失敗」(泣)
プログラミング熱は冷めたとのことですが、Aterm WD701CVでの失敗を報告しておきます。

283:デフォルトの名無しさん
07/08/25 19:12:39
>>282
あらら、失敗しましたかw
いやいや、私もRubyでソフトを作るのはこれが2作目です。
今度はC#をやろうと思い、挫折して、プログラミング熱が冷めましたw

284:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/09/05 16:39:41
FormDesignerだけど、例えばEditコントロールを貼っつけて、
マウスで適当にクリックしたりしてると、
勝手にコントロールの位置がずれたり、
サイズが小さくなったりするんだけど俺だけ?
イライラするのですが回避方法ないでしょうか。

287:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/09/17 21:06:44
それにしても、みんなよくVisualuRuby使う気になれるな
俺はApolloを先に使い始めたから、どうしてもVisualuRubyのAPIに慣れない

機能面の差はそんなにないと思うんだけど
クラスやメソッドの構成に癖があって、非常に扱いづらい……
慣れれば何とかなるのかな

289:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/09/19 03:59:38
GtkにしたらVisualuRuby使う気なくなった
ごめんよ

291:デフォルトの名無しさん
07/09/19 08:26:46
> ただ、マニュアル面での充実や、Vistaを含めマルチプラットフォームの可能性は断然Apolloだろうね。

Apolloは、Windowsでしか動かないよ
それと、更新されていないApolloは、Vista非対応のはず。(動くことは動くか)
Delphi2007でコンパイルしなおさないといけないと思う

292:デフォルトの名無しさん
07/09/19 09:04:51
コード手書きでGUIとかありえない。
20年前じゃないだからさ。

293:デフォルトの名無しさん
07/09/19 23:43:03
HTMLやTcl/tk(Ruby/tkにあらず)なら手書きでも良いような気がする
要は現状でGUIを書きやすくて充実してるライブラリが無いって話じゃね?

294:289
07/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:デフォルトの名無しさん
07/09/20 03:52:12
>>294
「断然って言い方」だけじゃなくて、通常そういうのはマルチプラットフォー
ムとはいわんから、用語や日本語の使いかたがマズかったのでは。


296:デフォルトの名無しさん
07/09/21 12:26:42
vrubyとMozilla ActiveX Controlを使ってgeckoエンジンのwebブラウザを作成したいのですが
ACTIVEXCINFOでできますか?

smpleだとIEの例はあるのですが、ACTIVEXCINFOが分からず四苦八苦しているので、どのよ
うに調べれはよいのですか?

297:デフォルトの名無しさん
07/09/23 07:12:54
vrubyってクラシックな視覚スタイルしか作れないのですか?
無いとしたら、今後XP(Luna)やVista(Aero)の対応予定とかありませんか?

# Ruby/TkだとTileを使えばXP風味になりました
# Ruby初心者スレから誘導されてきました

298:デフォルトの名無しさん
07/09/23 09:30:28
>>297
XP風にするだけならvrubyに限らずこの方法でいける
URLリンク(www.lhut32.com)

299:デフォルトの名無しさん
07/09/23 14:04:23
>>296
ACTIVEXCINFO =["Mozilla.Browser","DWebBrowserEvents"]


300:デフォルトの名無しさん
07/09/23 14:10:26
ACTIVEXCINFOは、ものすごく効率が悪いけど soleb
URLリンク(homepage1.nifty.com)
で、それっぽいの(これが難しい)を探せばなんとかなります。



301:デフォルトの名無しさん
07/09/25 03:30:08
>>299
おお、これでサンプルを変更したら動きました。
ありがとうございます。

>>300
効率が悪いとは具体的にどうしてでしょうか?

solebでCOMから扱うとなると、実際にはdllだけではなくMozillaそのものをDLして
埋め込むという感じになると思うのですが、やりたいことはWEBrickでプロキシ通
信したものをgeckoエンジン表示させたいのですが…


302:デフォルトの名無しさん
07/09/26 12:47:16
solebはActiveXコントロールの情報も出ますよ。
ただ、むちゃくちゃイッパイ情報が出るので、
探すのが効率悪い。

303:デフォルトの名無しさん
07/09/26 14:18:57
Windowsで現在実行中のプロセスを列挙したいのですがどうすればいい?

Win32APIのEnumProcessesとかを使うと出るらしいが
使い方がわからん。

使い方をおせーて

304:デフォルトの名無しさん
07/09/26 16:28:48
Windows NT系上での実行を想定してるんですが、
キャラクタセットについて下記の2案だとどっちが良いと思いますか?

案1
・ソースプログラムをUTF8で書く
・Ruby/TkへStringを投げるときはそのまま
・コマンドプロンプトへStringを出力するときはSJISへ変換してやる

案2
・ソースプログラムをSJISで書く
・Ruby/TkへStringを投げるときはUTF8へ変換してやる
・コマンドプロンプトへStringを出力するときはそのまま

305:デフォルトの名無しさん
07/09/26 16:45:47
と思ったけどプログラムコードの先頭で
#! ruby -Ks
って指定してやれば勝手にやってくれるのね・・・

306:デフォルトの名無しさん
07/09/27 06:42:19
>>303
スレリンク(tech板)

307:デフォルトの名無しさん
07/09/30 01:06:07
たぶんActiveScriptRuby1.8.637に更新してからだと思うけど
VisualuRuby使ったプログラムで
定数の再定義警告が出るようになりました。

ただ、Rubyインタプリタで実行したときは
警告されません。
Exerbで作った実行ファイルを実行したときに
警告が出ます。

俺だけなのかなぁ?

308:デフォルトの名無しさん
07/09/30 06:38:02
Ruby/Tkとvrubyを混在させるにはどうしたらいいの?

Tk.mainloop と VRLocalScreen.messageloop を一緒に走らせないとならないっぽいんだけど無理かな?

309:デフォルトの名無しさん
07/09/30 10:32:16
>>307
> VisualuRuby使ったプログラムで
> 定数の再定義警告が出るようになりました。
再現できるソースはない?


310:デフォルトの名無しさん
07/09/30 14:16:05
>>309

test.rb
---
require 'swin'
require 'vr/vrcontrol'
require 'vr/vrdialog'
---
これをrubyインタプリタで実行しても警告は出ない
(-W2オプション付きでも)

(続く)

311:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/09/30 14:26:15
>>311 のレシピファイルを使ってexerbで実行ファイルを作って
それを実行すると
vr/vrcontrol:1217: warning; already initialized constant WM_VSCROLL
などが出る。
(全角スペースでインデントしています。半角に変換して使ってください。)

まあ、エラーじゃないので、特に問題は無いんですけど、
なんか心臓に悪い。

313:デフォルトの名無しさん
07/10/22 17:44:18
URLリンク(www.itmedia.co.jp)
URLリンク(itpro.nikkeibp.co.jp)
URLリンク(itpro.nikkeibp.co.jp)


314:デフォルトの名無しさん
07/10/25 16:07:27
RubyをMac OS Xで使うスレが無いのが寂しい
Ruby/Cocoa使いとか居ない?

315:デフォルトの名無しさん
07/10/25 19:03:14
>>314
"ruby cocoa" site:2ch.net でググると
いくつかのスレで話題になっているようですね。
必要であればスレ立てしてみてはいかがでしょう。

316:デフォルトの名無しさん
07/10/25 19:16:56
RubyCocoaは明日から本番だしな。ちょうどいいんじゃね?

317:デフォルトの名無しさん
07/11/06 01:53:10
URLリンク(img.baguwen.org)

318:デフォルトの名無しさん
07/11/06 06:29:51
これ中国の修行僧が作った道だっけ?

319:デフォルトの名無しさん
07/11/14 01:55:36
ActiveSupportのようにライブラリを動的に読み込むスクリプトを、
exerbで実行ファイル形式にする方法ない?

320:デフォルトの名無しさん
07/11/14 13:17:53
必要なやつを全部レシピに追加しとけば?


321:デフォルトの名無しさん
07/11/15 01:31:37
便乗質問なのですが、hpricotっていうライブラリはc言語をコンパイルしたものが
含まれているって聞いたのですがそういうのもexerbに取り込むことが出来るのでしょうか。



322:デフォルトの名無しさん
07/11/16 00:52:44
>321
全然オッケー

323:デフォルトの名無しさん
07/11/29 11:10:51
"Adding Ruby to the .NET stable of languages and unlocking .NET to Ruby programmers."
URLリンク(rubydotnet.googlegroups.com)

Breaking News! (20th November 2007)
Ruby.NET version 0.9 has just been released

324:デフォルトの名無しさん
07/11/30 13:33:37
Windows における Ruby 開発環境の構築
URLリンク(taylor.gotdns.org)

325:デフォルトの名無しさん
07/11/30 13:50:52
>>323
とりあえず、VS2005ProにVS2005SDKとRuby.NET、VSRuby.NETをインストールしても、
VSに統合されなかったということだけは報告しておこう。


326:デフォルトの名無しさん
07/11/30 14:38:55
>>325
スタート > すべてのプログラム > Ruby.NET > Visual Studio (for Ruby)

327:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/30 20:37:39
俺も使えた。
でも、インテリセンスが効かないのが最悪。しかも大文字小文字を区別するし。

329:デフォルトの名無しさん
07/12/04 12:16:28
>>328
> しかも大文字小文字を区別するし。
Ruby用のIDEで区別しなかったら使いものにならんだろ。


330:デフォルトの名無しさん
07/12/04 12:48:32
>>329
.NETのメソッドヤプロパティが全てcase sensitiveなのは使いづらい。

331:デフォルトの名無しさん
07/12/04 14:59:27
>>330
Ruby.NET的にはそういうのはどうなんの?
大文字のと小文字のメソッドが全部定義されてる?


332:デフォルトの名無しさん
07/12/04 15:01:16
>>331
定義されていない。
いちいちAdditemなのかAddItemなのかを調べる必要がある。

333:デフォルトの名無しさん
07/12/04 16:45:30
え、インテリセンス使いまくりな俺には厳しい仕様だなー

334:デフォルトの名無しさん
07/12/04 22:55:31
>>332
> 定義されていない。
てことはmethod_missing使って呼び出す?

335:デフォルトの名無しさん
07/12/07 01:21:38
>>310 を書いた者ですが、
vr/vruby: などと書いているところを
vr/vruby.rb: というように拡張子まで含めて書くと
警告が出なくなりました。

というか、何で含めて書かなかったのだろう。
んー。

336:デフォルトの名無しさん
07/12/07 12:34:35
Rubyist Magazine出張版 Ruby on Windows
URLリンク(www.amazon.co.jp)

337:デフォルトの名無しさん
07/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 で
ビルドされているため、人に配布するためのバイナリを作るのであれば
このどちらかを使うべき、ということになります。

URLリンク(www.kmc.gr.jp)

338:デフォルトの名無しさん
07/12/07 21:11:39
>>337
それがどうかしたか?

339:デフォルトの名無しさん
07/12/09 23:33:10
>>337
VC7とVC8間も互換性ないからな。
VC9も同様。


340:デフォルトの名無しさん
07/12/10 03:26:16
>>339
VC8 なんてSPのあるなしでも互換性がないんじゃなかったっけ?


341:デフォルトの名無しさん
07/12/10 10:55:26
>>340
ない。

342:デフォルトの名無しさん
07/12/10 16:10:11
Ruby+vruby+exerbで最適な画像処理用ライブラリって何でしょうか。
jpgを読みこんで、パレットをいじったりして、bmpで出力したいのですが。。。

343:デフォルトの名無しさん
07/12/11 19:33:35
>>342
rcairoかrmagick

344:デフォルトの名無しさん
07/12/11 21:52:43
>>337-339
知らんかった
DLL化された拡張ライブラリの話しだよね?

困るかも

345:デフォルトの名無しさん
07/12/12 13:21:49
>>344
文句があるならMicrosoftへ。

346:デフォルトの名無しさん
07/12/13 22:30:40
URLリンク(www.garbagecollect.jp)

>_ なんかいろいろ言ってる間に[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:デフォルトの名無しさん
07/12/18 20:15:52
Cで拡張ライブラリを書いたときに、拡張ライブラリから関数ポインタを返してRuby側でその関数を実行するにはどうしたらいいですか。


348:デフォルトの名無しさん
07/12/18 20:59:03
そんなことよりモジュール関数にするとか

349:デフォルトの名無しさん
07/12/19 01:37:03
関数ポインタをRuby上で表現できるようなクラスを書くしかないと思うけど。
でも結局DLの車輪の再発明のような気がする。

350:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/12/19 08:08:29
拡張ライブラリの作り方くらい読めよ

352:デフォルトの名無しさん
07/12/19 13:37:13
>>350
そもそも、どうして関数ポインタをRuby上で扱いたいの?

353:デフォルトの名無しさん
07/12/19 13:40:16
関数ポインタをシェルスクリプトに返しても呼べないが如し

354:350
07/12/19 18:16:05
レスありがとうございます。

>>351
>>350のソースはSWIGにかけてからdllを生成するつもりだったんですが、その点を書くのを忘れました。ごめんなさい。

>>352
どうして関数ポインタをRuby上で扱いたいかというと、既存のC++のクラスに関数ポインタのメンバがあって、
それをRubyでも使いたかったんです。

>>353
関数ポインタは使えないのですね。
とりあえずC++のソースの追加は必要ですが、>>350のようにやればRubyでも使えるようになると思っているので
それでやって見ます。もっと楽な方法があったら教えてください。



355:デフォルトの名無しさん
07/12/19 20:31:50
Windowsだったらsuikyoってゆーローマ字変換ライブラリは使えませんか??

356:350
07/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:デフォルトの名無しさん
07/12/26 04:18:49
$LIB_PATH には、./は入るんじゃなかったけ?
$SAFEが1以上なら、入らんみたいだが・・・

358:デフォルトの名無しさん
07/12/26 04:19:21
とりあえず、プロンプトで、これどうなります?
$ ruby -e 'puts $:'

359:350
07/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:デフォルトの名無しさん
07/12/27 01:06:46
ちゃんと、最後に、 ". "が入っているから、
上手くいくはずなんだがな・・・

361:デフォルトの名無しさん
07/12/27 05:29:34
ファイルが見つからないんじゃなくて、mytest.soをDLLとしてロードできない何らかの理由があるんじゃないかな。
Init_mytestという関数がないとか、mytest.soが依存している他のDLLが動的リンクできないとか。

362:デフォルトの名無しさん
07/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
07/12/27 10:19:06
とりあえず
%module MyTest
のところを
%module mytest
にすると上手くいくようです。
モジュール名は大文字で始めなければいけないという先入観がありました。


364:デフォルトの名無しさん
07/12/27 22:15:16
URLリンク(arton.no-ip.info)

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:デフォルトの名無しさん
07/12/27 22:23:10
ゴルビーってなんやねん

366:デフォルトの名無しさん
07/12/28 04:49:31
俺は全然まとはずれな、答えしてたのね orz

DLLの中美香

367:デフォルトの名無しさん
07/12/30 01:40:29
artonさんとこのインスコして
うきうきわくわく

ruby -e "t=Time.now; 100000.times{}; puts Time.now - t"

ってやったら
1.8の方が速かった

しょぼーん(´・ω・`)

368:デフォルトの名無しさん
07/12/30 03:51:52
どういうベンチなんだそれは・・・

369:デフォルトの名無しさん
07/12/30 14:07:39
require 'benchmark'
puts `ruby -v`
puts Benchmark::CAPTION
puts Benchmark.measure(RUBY_VERSION) { "a"*100_000_000 }



ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
      user     system      total        real
  1.828000   0.031000   1.859000 (  1.875000)


ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32]
      user     system      total        real
  2.484000   0.015000   2.499000 (  2.532000)


ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mingw32]
      user     system      total        real
  0.813000   0.015000   0.828000 (  0.828000)

ruby 1.9.0 (2007-12-30 revision 0) [i386-mingw32]
      user     system      total        real
  0.953000   0.016000   0.969000 (  0.969000)

370:デフォルトの名無しさん
07/12/30 14:10:17
まちごうた
require 'benchmark'
puts `ruby -v`
puts Benchmark::CAPTION
puts Benchmark.measure { "a"*100_000_000 }

371:デフォルトの名無しさん
07/12/31 07:38:09
>>368は、詳細をだせ、と言っているのではなく、
たぶん、それはベンチになっていないといいたいのでは?

372:デフォルトの名無しさん
07/12/31 12:21:56
1.9のほうが遅い=ベンチになってない(Ruby脳)

373:デフォルトの名無しさん
07/12/31 18:05:45
ActiveTcl8.5も出てたのか

374:デフォルトの名無しさん
08/01/02 20:16:04
何十個かの言語のベンチを比較するページがどっかにあったけど、
あれ試せばいいんじゃね?

375:デフォルトの名無しさん
08/01/03 09:38:43
RubyオセロをCOM同士で戦わせるベンチみたいなのはねーの?

376:デフォルトの名無しさん
08/01/09 19:38:07
Rubyスクリプトから、ファイルを関連付けられてるアプリで開くにはどうすりゃよいですか?

377:デフォルトの名無しさん
08/01/09 19:56:08
変数fileにファイル名が入ってるとして、

system("start #{file}")

378:デフォルトの名無しさん
08/01/09 19:57:45
Win32APIのShellExecuteを呼ぶ

379:デフォルトの名無しさん
08/01/09 20:24:41
>>377-378 thx
ShellExecuteで解決しました
ただ、反応しないファイル(assoc .extで関連付けが確認できないもの?)があるのですが
それらの対策ってできます?

380:デフォルトの名無しさん
08/01/09 20:32:13
戻り値が32未満ならエラーだからさらにその意味を調べて分岐すればいい。
たぶんこれ
SE_ERR_ASSOCINCOMPLETE = 27;
詳細はググレカス

381:デフォルトの名無しさん
08/01/09 21:16:19
zipを渡して戻り値SE_ERR_NOASSOC
関連付け設定しなおして再起動してもうまくいかず
試しに
system("cmd /c \"#{zipfile}\"")
だったらうまくいったり
他のPCだったら無問題だったので、自分の環境がおかしいということで
めんどくさいので解決ということにしました
指南どうもありがとう

382:デフォルトの名無しさん
08/01/11 15:55:04
/\s/ =~ zipfile

383:デフォルトの名無しさん
08/01/13 15:37:53
RubyでUSBカメラ2台以上のリアルタイム映像を取り込みたいのですが、
ふさわしいライブラリは何ですか?
用途はwindowsでの3次元画像処理です。

ここからは有ればいいなという程度の希望です。
今のところ、機能性と安定性の両方を考えると、Pure Rubyよりもラッパー系が良いかと考えています。
ラップされた方のライブラリがカメラに対応していて、なおかつラッパーが完成しているようなものが一番いいです。


384:デフォルトの名無しさん
08/01/14 17:40:17
ActiveScriptRuby 1.8.5をインストールした環境でVisualuRubyのタイマーを
使いたいのですが、うまく動いてくれません。ソースは下記の通りです。
timeralive?ではタイマーが存在している旨の表示がコンソールに出力されますが、
メソッド"timer1_timer"が呼び出されません。
どうすればちゃんとタイマーが使えるようになるでしょうか?
御指南をよろしくお願いします。

require 'vr/vruby'
require 'vr/vrcontrol'
require 'vr/vrtimer'
include VRTimerFeasible

class TimerTest < VRForm

def construct
self.caption = 'Timer Test'
self.move(140,124,303,173)
addControl(VRStatic,'static1',"Startボタンを押して!",40,80,224,40,0x800201)
addControl(VRButton,'button1',"Start",40,8,224,48)
end

def button1_clicked
addTimer(1000, "timer1")
puts "TimerAlive => " + timeralive?("timer1").to_s
end

def timer1_timer
puts "タイマー来たよ"
@static1.caption = "タイマー来たよ!"
end
end
VRLocalScreen.start TimerTest

385:デフォルトの名無しさん
08/01/14 18:10:03
include VRTimerFeasible をclass定義内に

386:デフォルトの名無しさん
08/01/14 19:55:36
> 用途はwindowsでの3次元画像処理です。

あきらかに、Rubyの用途じゃない

387:デフォルトの名無しさん
08/01/14 21:51:55
>>385
できました。どうもありがとう!

388:384
08/01/14 23:41:34
すみませんが、またまたどなたかに御指南をお願いします。
下記のコードで、timer1_timerのsleep時間中に、Start/Resetボタン(button1)を押してもすぐにはボタンが反応しません。
ボタンを押し続けていると、数秒後にようやくボタンを押し込めるようになるのですが…
これを任意のタイミングでボタンを即座に押し込めるようにならないかと考えています。
できれば具体的なコードで教えていただけるとありがたいです。よろしくお願いします。

require 'vr/vruby'
require 'vr/vrcontrol'
require 'vr/vrtimer'

class TimerTest < VRForm
include VRTimerFeasible

def construct
self.caption = 'Timer Test'
self.move(140,124,303,173)
addControl(VRStatic,'static1',"Start/Resetボタンを押して!",40,80,224,40,0x800201)
addControl(VRButton,'button1',"Start/Reset",40,8,224,48)
end

def button1_clicked
deleteTimer("timer1") if timeralive?("timer1")
@i = 0; addTimer(1000, "timer1")
end

def timer1_timer
@i += 1; @static1.caption = "#{@i}回タイマー来たよ!"
sleep(5) #タイマー中に行う処理のダミー
end
end

VRLocalScreen.start TimerTest

389:デフォルトの名無しさん
08/01/15 01:37:39
sleepんとこの処理をスレッドにするとかそういう話?

390:デフォルトの名無しさん
08/01/15 10:46:47
WinグラマならPowerShell使おうぜ

6ヶ月以内にアクセスされなかったファイルを削除するサンプル
Get-ChildItem | Where-Object {$_.LastWriteTime -lt (Get-Date).AddMonths(-6)} | ForEach-Object {$_.Delete()}

もうRubyいらないね\(^o^)/

391:デフォルトの名無しさん
08/01/15 11:55:49
LastWriteTimeが最終アクセス時間なのか?


392:デフォルトの名無しさん
08/01/15 21:18:26
>>390
PowerShellのリファレンスマニュアルどこよ?
文法とか仕様とか標準ライブラリとか。
Rubyのリファレンスマニュアルレベルの物で良いからどこにあるのか教えてくれ。
俺はそれが見付からなくてやめた。

393:デフォルトの名無しさん
08/01/16 10:24:08
URLリンク(www.atmarkit.co.jp)

スレリンク(win板)


394:350
08/01/16 19:56:40
たびたびすいません。350です。
また教えてください。

SWIGでRuby拡張ライブラリを作っています。
関数の引数にポインタを渡してそれ、を介して値を返す場合typemaps.iに定義されているOUTPUTが使えるそうなのですが、
クラスのメンバ関数だと上手くいきません。
クラスのメンバ関数をtypemapにマッチさせるにはどうしたらいいでしょうか。


395:350
08/01/16 19:57:06
=============C++ヘッダ============
#ifndef MYLIB_H
#define MYLIB_H

void add(int a,int b,int *result);

class AAA
{
public:
void add(int a,int b,int *result);
};

#endif
============C++ソース=============

#include"mylib.h"
void add(int a,int b,int *result) { *result=a+b; }
void AAA::add(int a,int b,int *result) { *result=a+b; }

396:350
08/01/16 19:57:34
==========インターフェースファイル=======
%module mylib
%{
#include"mylib.h"
%}

%include typemaps.i

void add(int a,int b,int *OUTPUT);
void AAA::add(int a,int b,int *OUTPUT);

%include "mylib.h"
===========rubyファイル=================
require "mylib"

print Mylib::add(1,2),"\n"
print Mylib::AAA.new.add(3,4),"\n"


===========実行結果===================
bash-3.1$ ruby test.rb
3
test.rb:4:in `add': wrong # of arguments(2 for 3) (ArgumentError)
from test.rb:4

397:350
08/01/17 20:45:01
半分くらい自己解決しました。

その方法はヘッダを以下のように書き換えるというもの。
一応これで動くのですが、なるべくならヘッダをいじらずに
インターフェースファイルで何とかしたいです。
良い方法があったら御教示お願いします。


#ifndef MYLIB_H
#define MYLIB_H

void add(int a,int b,int *OUTPUT);

class AAA
{
public:
void add(int a,int b,int *OUTPUT);
};

#endif

398:デフォルトの名無しさん
08/01/19 21:52:13
ActiveScriptRubyの1.9.0はでないのかな
それとも1.9.1待ち?


399:デフォルトの名無しさん
08/01/21 02:00:32
ActiveScriptRubyはヤル気あるのか?
1年以上放置してんじゃねーよ。

400:デフォルトの名無しさん
08/01/21 02:03:58
枯れてるんなら余計なことはしなくていいよ

401:デフォルトの名無しさん
08/01/21 22:16:55
どうして欲しいのか言わないと
伝わらないよ。

402:デフォルトの名無しさん
08/01/21 22:17:42
1.9.0に対応してほしい。

403:デフォルトの名無しさん
08/01/21 22:18:59
迷走してるから無理

404:デフォルトの名無しさん
08/01/21 22:49:34
vcで作った拡張ライブラリのバイナリ配布って無理?mscr80になっちゃうでしょ
配布されてるやつはmscrt版だし
ここら辺はわかってる人同士の話しかないのでエンドユーザーには大変だな

405:デフォルトの名無しさん
08/01/21 23:44:45
>>404
そういや、この辺まとめてあるページってないのかな?

gemとかで配布する、Win32用の拡張ライブラリ(DLL)のランタイム回りどうすればいいのという

406:デフォルトの名無しさん
08/01/22 09:47:31
>>404
vが抜けてるあたりで君がわかってなさそうだということは伝わった。

>>405
gemで配布するのはどうすればいいんだろうね。
MinGW版向けということでmsvcrtが無難という気はするが。

407:デフォルトの名無しさん
08/01/22 19:56:48
Ruby初心者です。環境はWindowsXP2とActiveScriptRubyで、
EmEditorから .rbを呼び出して使いたいのです。
開いているテキトスファイルに、.rbでの内容(主に文字列の置換)を適用するのが
主な目的です。Emのヘルプにはサンプルとして、

 #language = "RubyScript"
 Window.document.write( "Hello!" );

と書かれており、これはちゃんと Hello! と書き込まれるのですが、

 #language = "RubyScript"
 puts へのへのもへじ

と書くと「Bad file descriptor 」と出てきます。
ActiveScriptRubyを入れれば、
そのまま .rbファイルが読み込めるというわけではないのでしょうか?
さっぱりわかりません。

初心者過ぎてどこでおかしくなっているのかすら判らず立ち往生しています。
どうか問題点と解決策を御教示ください。お願いします。

408:デフォルトの名無しさん
08/01/22 20:20:36
上の

puts へのへのもへじ

は、

puts 'へのへのもへじ'

の間違いでした。すみません。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4371日前に更新/175 KB
担当:undef