一括表示
タイトル
記事No
投稿日
投稿者
参照先
KbMedia Player Version 3.14beta5.2024.0603
335
2024/06/02(Sun) 22:41:38
Kobarin

https://kobarin.sakura.ne.jp/test/kbmed314_beta5.exe
https://kobarin.sakura.ne.jp/test/kbmed314_beta5.7z

.exe と .7z はどちらも中身は同じです。
.7z の展開の仕方が分からない方は .exe をダウンロードして下さい。

.exe だと Microsoft Edge でブロックされる方は .7z をダウンロードして下さい。
Microsoft Edge にブロックされる方は安全だと報告してくれると助かります。

起動時にエラーメッセージが表示されてプラグインが認識されない場合は
Microsoft Visual C++ 2022 再頒布可能パッケージが必要です。
https://visualstudio.microsoft.com/ja/downloads/#other-ja-family
x64 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x64.exe
x86 版ランタイムファイル直リンク
https://aka.ms/vs/17/release/VC_redist.x86.exe
(x64 版の動作には vc_redist.x64.exe と vc_redist.x86.exe の両方が必要です)

VS2019 のランタイムでも動作はするようですが、念のため VS2022 のランタイムを
入れて下さい。

β版は Windows XP のサポートを打ち切りました。XP 環境だと一部のプラグインが
動作しません。Windows XP で使いたい方は正式版をお使い下さい。


v3.14beta5 での変更点

・各種プラグイン/DLL の開発環境を VS2022 17.10.1 に更新
・kbmdx.kpi に関する以下の修正
 ・64bit 版が落ちるのを修正
 ・v3.14beta3 同梱の版(VS2022 17.10.0 でビルド)から発生
  (std::mutex::lock() で落ちる。kbmod.kpi が落ちるのと同じ原因?)
 ・プリプロセッサの定義に _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR を追加で回避
・kbpsf2.kpi に関する以下の修正
 ・プリプロセッサの定義に _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR を追加
 ・VS2022 17.10.0 以降でビルドすると 64bit 版が std::mutex::lock() で落ちるこ
  との対策
 ・本プラグインで実際に落ちるのを確認出来た訳ではないが std::mutex を使用して
  いる箇所があるようなので念の為


ちょっと納得行かないのですが kbmdx.kpi の 64bit 版が落ちるのを修正しました。
kbpsf2.kpi の方は念の為の修正です。
一週間ほど様子を見てから正式版にするつもりでしたが落ちる不具合はあまり
使われない形式でも早めに修正しておこうと思いました。

VS2022 17.10.0 以降の最新のプラットフォームツールセットでリリースビルドしたものは
64bit 版では

std::mutex::lock()

を呼ぶと落ちるみたいで改めて確認してみたら kbmod.kpi の64bit版が落ちるのもこれが
原因でした。

試してみると EXE 内で使う分には大丈夫だけど DLL 内だと NG っぽいですね。

https://github.com/microsoft/STL/wiki/Changelog

VS 2022 17.10

...

Fixed bugs:

Fixed mutex's constructor to be constexpr. #3824 #4000 #4339
Note: Programs that aren't following the documented restrictions on binary compatibility may encounter null dereferences in mutex machinery. You must follow this rule:
When you mix binaries built by different supported versions of the toolset, the Redistributable version must be at least as new as the latest toolset used by any app component.

You can define _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR as an escape hatch.

escape hatch(緊急の際の避難手段?) として定義?

怖くて全てのプロジェクトで定義しておきたくなるんですけど。
EXE で OK で DLL で NG なのは修正し切れてないということ?
むしろ 17.10.0 から発生するようになったような?
pagetop

- Web Forum v8.0 -
++ Edited by Hamel ++