Ticket #35706

Visual Studio 2015でビルド時の不具合

Eröffnet am: 2015-11-08 22:13 Letztes Update: 2017-01-05 23:22

Auswertung:
Verantwortlicher:
Typ:
Status:
Geschlossen
Komponente:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
1

Details

Visual Studio 2015でビルドした場合に、~コマンドからの賞金首確認等の一時ファイルを使用する処理がエラーになります。

tmpnam関数の戻り値は従来はファイル名が返りましたが、2015ではフルパスが返ってきます。 2013は全然触っていないため判りません。2012では問題がなかったためファイル名が返ると思います。

得られた一時ファイル名はそのまま使われず、頭に.(ドット)を付けて使うため一時ファイルを開けなくなってしまいます。 頭にドットを付けるのはWindows Vistaへの対策のようです。(リビジョンfa49b1a129f11dc7de021a29c3b9cd3540aebc1c) https://osdn.jp/projects/hengband/scm/git/hengband/commits/fa49b1a129f11dc7de021a29c3b9cd3540aebc1c

ドットを付けなければ問題ないため、条件付きコンパイルするパッチを書きました。 Visual Studio 2015では_MSC_VERの値は1900です。

--- src/util.c	Mon Nov 02 22:28:56 2015
+++ src-fix/util.c	Sun Nov 08 21:29:48 2015
@@ -290,7 +290,11 @@
 #ifndef WIN32
 	(void)strnfmt(buf, max, "%s", s);
 #else
+#if (_MSC_VER >= 1900)
+	(void)strnfmt(buf, max, "%s", s);
+#else
 	(void)strnfmt(buf, max, ".%s", s);
+#endif
 #endif
 
 	/* Success */
 }}}

Ticket-Verlauf (3/5 Historien)

2015-11-08 22:13 Aktualisiert von: shimitei
  • New Ticket "Visual Studio 2015でビルド時の不具合" created
2015-11-08 22:27 Aktualisiert von: shimitei
Kommentar

Visual Studio 2013がインストールされていたので確認しました。 2013ではtmpnamの戻り値は"\s37o."のようなファイル名部分のみでした。 2015から変わったようです。

2015-11-09 00:23 Aktualisiert von: deskull
2017-01-05 23:22 Aktualisiert von: deskull
  • Ticket Close date is changed to 2017-01-05 23:22
  • Status Update from Offen to Geschlossen
Kommentar

パッチを既に受領していることを確認したのでチケット終了。不手際致しました。 https://osdn.net/projects/hengband/scm/git/hengband/commits/5d4d798cbdf13ee79a85acc71df2a0d87b7a3759

Dateianhangliste

Bearbeiten

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Anmelden