SDK: mqsdk411(C++)
Metaseq: 4.1.1 (64bit)
マテリアルを1つ残らず削除することができません。削除してもマテリアルパネルにマテリアル1つ残った状態になり、そのマテリアルを開いた瞬間にクラッシュします。
サンプルコード(メタセコの初期状態から下のコード実行で再現可能):
int numMat = doc->GetMaterialCount();
for(int i=0;i<numMat;i++)
{
if(doc->GetMaterial(i))doc->DeleteMaterial(i);
}
#ifdef _DEBUG
numMat = doc->GetMaterialCount();
for(int i=0;i<numMat;i++)
{
ATLTRACE(_T("DEBUG(Material-%d): 0x%08X\n"), i, doc->GetMaterial(i));
}
#endif
上のコード(_DEBUG)のTRACE結果:
続きを表示...
DEBUG(Material-0): 0x00000000
クラッシュログ:
Exception code: c0000005 (EXCEPTION_ACCESS_VIOLATION)
Access violation at address 00007FF6A656261F. Read of address 00000000000001C0.
Module: C:\Program Files\tetraface\Metasequoia4\Metaseq.exe
0x00007FF6A656261F Metaseq.exe: CreateLightBall + 1343 bytes
0x00007FF6A676D460 Metaseq.exe: TBallDrawThread::Draw + 80 bytes
0x00007FF6A6717D2A Metaseq.exe: FThread::ThreadCallback + 26 bytes
0x0000000050801D9F MSVCR100.dll: endthreadex + 67 bytes
0x0000000050801E3B MSVCR100.dll: endthreadex + 223 bytes
0x00007FF9BC1E15CD KERNEL32.DLL: BaseThreadInitThunk + 13 bytes
0x00007FF9BCC143D1 ntdll.dll: RtlUserThreadStart + 29 bytes