我使用以下代码在程序开始时加载了一个 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)
不共享文件或一旦加载就放手..?