トップページ > 記事閲覧
使用文字コードをUTF-8にした際にログが正常に出力されない
名前:Citrine 日時: 2018/10/06 22:34

いつもお世話になっております。 今回、バグと思わしき挙動に遭遇したので報告させていただきます。 SetUseCharCodeFormat(DX_CHARCODEFORMAT_UTF8);を実行した際、Log.txtの内容が一部正常に出力されないようです。 Unicodeでビルドしたものと比較したところ、以下の内容が時間以外空白になっていました。 --- Log.txt --- 951: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 960: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です 965: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です 969: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です 974: カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 982: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です 987: DXT2テクスチャフォーマットは使えません 992: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です 998: DXT4テクスチャフォーマットは使えません 1004: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です 1009: ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 1015: ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 1020: ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 1025: 1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 1030: 1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 1034: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 1039: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 1046: 2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 1051: 2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 1055: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 1060: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 1064: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 1069: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 1073: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 1077: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 1082: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 1086: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 1090: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 1095: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 1099: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 1104: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 1111: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 1115: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 1119: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 1123: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 1128: 使用する機能レベル:D3D_FEATURE_LEVEL_11_0 1132: 同時にレンダリングできるバッファの数:8 1136: 最大テクスチャサイズ 幅:16384 高さ:16384 テスト環境 OS: Windows 10 Ver.1809 ライブラリバージョン: 3.19d 開発環境: Visual Studio 2017 (15.8.6) それと、もし可能でしたらLog.txtの文字コードをUTF-8にする機能を追加していただけるとありがたいです。
メンテ

Page: 1 |

Re: 使用文字コードをUTF-8にした際にログが正常に出力されない ( No.1 )
名前:MSK 日時:2018/10/06 23:05

便乗質問です。 DxLog.cppのLogFileAdd_WCHAR_Tは最後return -1で抜けていますが、0ではないのでしょうか? あと、私の環境では最初の方にあるCPUベンダの下の「CPU名:」の行も時間以外空白でした。
メンテ
Re: 使用文字コードをUTF-8にした際にログが正常に出力されない ( No.2 )
名前:管理人 日時:2018/10/07 02:07

ご指摘ありがとうございます SetUseCharCodeFormat(DX_CHARCODEFORMAT_UTF8);を実行した状態でも Log.txt の内容が正常に 出力されるように修正したバージョンをアップしましたので、よろしければお使いください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) > MSKさん ご指摘ありがとうございます LogFileAdd の元々の関数名が ErrorLogAdd だったので、戻り値もそのときの名残で -1 になっていました 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) > あと、私の環境では最初の方にあるCPUベンダの下の「CPU名:」の行も時間以外空白でした。 上記のバージョンでこちらも修正できていると思います
メンテ
Re: 使用文字コードをUTF-8にした際にログが正常に出力されない ( No.3 )
名前:MSK 日時:2018/10/07 20:53

先に書くのは気が引けますが、確認しました。ご対応ありがとうございます。 (※Citrineさんの要望である「ログのフォーマットをUTF-8にもできる」は、今回なしですね?)
メンテ
Re: 使用文字コードをUTF-8にした際にログが正常に出力されない ( No.4 )
名前:yumetodo 日時:2018/10/08 11:53

つまりログをUTF-8にする手段がないということに・・・?
メンテ
Re: 使用文字コードをUTF-8にした際にログが正常に出力されない ( No.5 )
名前:管理人 日時:2018/10/09 03:02

> (※Citrineさんの要望である「ログのフォーマットをUTF-8にもできる」は、今回なしですね?) ご指摘ありがとうございます、すみません、見落としていました m(_ _;m Log.txt にログが出力されるよりも先に SetUseCharCodeFormat(DX_CHARCODEFORMAT_UTF8); が 実行されていた場合は Log.txt に UTF-8 形式でログが出力されるようにしましたので、 よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: 使用文字コードをUTF-8にした際にログが正常に出力されない ( No.6 )
名前:Citrine(解決) 日時:2018/10/09 21:20

遅くなりました。 ログの正常出力、UTF-8化共に確認しました。 お忙しい中の対応ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存