次のコードを使用して、プログラムの開始時に png アイコン ファイルを読み込みます。
if (NULL == m_pImage) {
Bitmap *pImage = new Bitmap(T2W(filePath));
if (size == kSmallIconSize) {
m_pImage = static_cast<Bitmap *>(pImage->GetThumbnailImage(size, size));
} else {
m_pImage = pImage;
}
if (m_pImage->GetLastStatus() == Ok)
m_resID = index;
else
return FALSE;
}
return TRUE;
その後、あるイベントで、同じファイルを開こうとします
CFile file;
if (TRUE == file.Open(filePath, CFile::modeRead))
しかし、ファイルを開くことができず、GetLastError()
32 を返します。
ERROR_SHARING_VIOLATION
どうすればこれを修正できますか?
アップデート:
エラーの原因となっている「ビットマップの読み込み」コードを確認するために、その直後に CFile::Open を試して確認しました。
Bitmap::Bitmap(WCHAR *pFilePath)
ファイルを共有したり、ロードした後に手放したりしないのはなぜですか..?