> 近況的2018年05月 <

各プロジェクトはこんな感じでした。 ここはnyasu@3webの「近況的雑文集」のページです。
2002年から動いているので、デザインとか、いろいろ古いとか言わないように。当時から古かったけど。
話題の分類
私的プロジェクトその他
[this]
この近況まとめシステム。
[palmsync]
PalmSync
[rubyeb]
RubyEB
[vruby]
VisualuRuby計画(仮称)
[linux]
うちのLinuxBox関係の話題
[win]
Windows関係
[pda]
PDA関係。Palmとか
[ruby]
Ruby一般
[net][web]
ネット系雑談
[etc]
その他雑談

一応話題は計算機関係に縛る予定。予定は未定。
話題による分類ページは作成予定。同上。
あと、独り言がわんさか。

2018-5-15

wndproc via fiddle その4 [vruby]

1ヶ月立ちそうなので進捗報告など。実は実動が1時間くらいしかありません。

前回書いた、DefWindowProcW云々は、見たまんま誤りです。はい。GC.enableの前にreturnしてますね。ということでGCはdisableされたままです。お恥ずかしい限り。
GCが不具合のキモのようです。スレッド関係は濡れ衣だったかな。

で、落ちてるのどこよ、ということで、printfデバッグしました。gdbだと思ったように動かなかったので。

その結果は...
ext/fiddle/libffi-3.2.1/src/x86/win64.S の ffi_call_win64で落ちてます。
呼び元はext/fiddle/libffi-3.2.1/src/x86/ffi.cの390行目の少し前(printf入れてるのでズレてる)のFFI_WIN64のcase節で、

case FFI_WIN64: printf("libffi_4\n");fflush(stdout); ffi_call_win64(ffi_prep_args, &ecif, cif->bytes, cif->flags, ecif.rvalue, fn); printf("libffi_4b\n");fflush(stdout);
こんな感じにprintfいれると、手前のprintfしか呼ばれてません。cygwin64/ruby-2.5.1/windows10

あ・せ・ん・ぶ・ら(はーと)

次どうしようか考え中。libffiの仕組みを知らずに突撃するのは辛そう。

記憶の片隅にある挙動が似てたので、dllが勝手に解放でもされたのかとも疑いましたが、今のところそれは違う感じ。

また、前のfdlwin.rbですが、ウインドウスタイルが間違っててRegisterClassがちゃんと動かなかったりするようです。

wndclass.style = 0x0004003
と修正が必要です。しない場合、ウインドウがそもそも出ないことがあるようです。(うちでは出ますが...)


2018年04月へ

メールを出すつもりの方は

こっちへ