こんばんは。にゃす@3web です。 メール読むのサボってたらタイミング悪すぎ.... Sat, 29 Jan 2000 20:26:05 +0900 :Masaki Suketa<CQN02273 / nifty.ne.jp> wrote Masaki> で,nyasu さんが頑張って 0.0.7 のコンパイルを通すことには成功したよう Masaki> です. 実は、[ruby-dev:8634]の情報抜きでlcc-win32でやってたのでした。 わたなべさんの情報を元にして、またやってみます。 (我ながらとても間抜け) #lcc-win32のヘッダは、union/structの名無しが多くて面倒じゃありませんでした? で、lcc-win32を使ったこちらのwin32ole.dllは、 おそらく助田さんの作られたcygwin版win32ole0.0.4と同程度の物だと思われます。 こちらもcore吐きますので。 メモ書きによると変更点は ・__int64, __uint64を定義してやる(long long) ・VARIANT_TRUEとVARIANT_FALSEを定義(0xffffと0) ・ヘッダファイル中#define/typedefで2回以上定義されるものが出てくるのを処理 (私は乱暴にもコメントアウトしました) ・理由がよくわかりませんが、typedefでこけるものがあるのでこれもコメントアウト ・gccが名無しのstruct/unionを許してくれないので適当に名前を付けます。 50個くらい? これに付随してV_UNION()マクロと、win32ole.c中の1カ所を変更する必要あり。 ・STDMETHODIMPマクロが引数無しで呼ばれるときエラーになるので、 win32ole.cの中で自分で展開 ・_stdcallが定義されてない臭いのですが、#define _stdcall STDCALLで何とか 状況は sample/excel1.rbの 7:workbook = application.Workbooks.Add(); でSEGV (excelが残る) sample/excel2.rbの 13:excel.Workbooks.Add(); でSEGV (非表示excelが残る) sample/excel3.rbの 7:workbook = application.Workbooks.Add(); でSEGV (excelが残る) sample/ie.rbの 不安定らしい。前は正常終了してたのに、今日はSEGVします。 ie.GoHomeは失敗したことがありません。 ie.navigateはちゃんと動かないかSEGVします。 sample/ieconst.rb WIN32OLE_VERSION = 0.0.7 とだけ表示されて正常終了 sample/ienavi.rb 正常終了はする。URLが腐っている。 (今やってみたら謎の文字列が帰ってきました。今までは空でしたが) sample/oledirs.rb 16:folder = fs.GetFolder(".") でSEGV ということなので、引数まわりでミスしてるのかなと思ってます。 特にOLEは全然わかってないので、思い当たることがありましたら、 教えて下されば幸いです。 #mswin版を当方で作ろうとするなら、Borland C++で作らないといけないのですが #実際に作られた方いらっしゃいます? __ ☆ にゃす @3Web <nyasu / osk.3web.ne.jp> ★ PGP指紋 24 DC 99 F5 3E 4A C2 07 AA 21 B4 0F 96 60 34 1D ※ 公開鍵 http://www.threeweb.ad.jp/~nyasu/pgpkey.html