Ticket #33749

Re: Windows 8.1(x64)での不正な動作 (フォーラムメッセージ #72875 からの引用)

Eröffnet am: 2014-05-03 20:40 Letztes Update: 2020-12-23 23:37

Auswertung:
Verantwortlicher:
Typ:
Status:
Geschlossen
Komponente:
(Keine)
Priorität:
6
Schweregrad:
6
Lösung:
Gefixt
Datei:
Keine

Details

フォーラム 変愚蛮怒フォーラム [#72875] からの引用

[forum: 72875]

#71021 への返信

Windows 8.1(x64)で、サブウインドウを有効にしていると動作しません。 hengband.INIのVISIBLEを全て0にすると起動します。 2.1.1 r3180(sourceforge)、2.1.3(sourceforge)、2.1.4 r3508(ローグライク実験室さん)の いずれのバイナリでも再現します。 サブウインドウが先に表示され、メインウインドウが表示されずにフリーズします hengband.exeで例外コード:0xc000041dが発生しています。

Windows8ではウィンドウの描画まわりが変わったようで、サブウィンドウがあるとメインウィンドウの初期化が終わる前にWM_PAINTが発生しているような感じです。 場当たり的な対応ですが、 main-win.cのTerm_fresh関数にNULLチェック入れると動作しました。 errr Term_fresh(void) { int x, y; int w = Term->wid; int h = Term->hgt; int y1 = Term->y1; int y2 = Term->y2; term_win *old = Term->old; term_win *scr = Term->scr; の後で↓のようなNULLチェックを行う。 /* Before initialize */ if (!old || !scr) return (1);

Ticket-Verlauf (3/4 Historien)

2014-05-03 20:40 Aktualisiert von: habu
  • New Ticket "Re: Windows 8.1(x64)での不正な動作 (フォーラムメッセージ #72875 からの引用)" created
2014-06-28 20:06 Aktualisiert von: deskull
  • Verantwortlicher Update from (Keine) to deskull
Kommentar

shimiteiさんからのアドバイスに従ってTerm_fresh()に一行付加。一応旧Windowsに副作用が発生しないかチェックの上、完了とする。

https://sourceforge.jp/projects/hengband/scm/git/hengband/commits/a8fdecc5a53e49d9ed96ce1c0d3af06df7913d33

2014-06-28 20:20 Aktualisiert von: deskull
  • Ticket Close date is changed to 2014-06-28 20:20
  • Status Update from Offen to Geschlossen
Kommentar

Windows7でも問題なくいつも通り稼働していることを確認。完了とする。

2020-12-23 23:37 Aktualisiert von: deskull

Dateianhangliste

Keine Anhänge

Bearbeiten

Please login to add comment to this ticket » Anmelden