Visual C++ 2013でWin2000互換モードで実行するとクラッシュする嫌がらせの、実証コード
何の嫌がらせかわからないけど、VC++2013 でコンパイルすると Windows 2000互換モードで実行したときにクラッシュする、最小の実証コードが判明しました!
#include "stdafx.h" #include <ppl.h> typedef void* (*Tmemcpy)(void*, const void*, size_t); static void* mt_copy(void* d, const void* s, size_t size, Tmemcpy memcpyFunc) { size_t blockSize = (size / 2) & ~31; // Make size a multiple of 32 bytes const size_t offsets[] = { 0, blockSize, size }; Concurrency::parallel_for(0, 2, [d, s, &offsets, memcpyFunc](int i) |
並列パターン ライブラリ (PPL)
というのを使うと Windows 7などで Windows 2000互換モードで実行したときにアプリケーションがクラッシュします
|。・ω・) 訳がわからないよ!
Media Player Classic もソース見たら「parallel_for」があったので間違いないです・ω・
Visual Studio 2013 に互換モードに関する欠陥判明!
同じ原因でクラッシュするのが判明しているアプリ
iTunes 12.x
Media Player Classic
東方深秘録
IntelQuickSyncDecoder
Comments