简而言之,我正在使用 Bitmap::FromFile 从文件中加载位图,但之后我想将其从磁盘中删除。
问题是,Bitmap::FromFile 绝对锁定文件以防止任何更改/删除,直到加载的图像被卸载
这是因为我将位图存储在二进制文件中,所以我想按以下顺序进行操作:
1. 从二进制文件中提取图像
2. 加载图像
3. 删除 #1 中提取的文件
(只是一些基本的保护我的图像资源,我只是不希望它们位于我的程序目录中)
Bitmap::FromFile 即使像我的尝试一样从文件中克隆加载的图像,仍会锁定文件以防止删除:
Bitmap* tempbmp = Bitmap::FromFile(fileanddir.c_str(),false);
Rect temprect( 0, 0, tempbmp->GetWidth(), tempbmp->GetHeight() );
// make the image to be used as a clone to the temporary
// bitmap to avoid file locking
image_to_be_used = tempbmp->Clone(temprect, PixelFormatDontCare);
// delete temporary loaded bitmap since it shouldn't be needed
delete tempbmp;
// delete the file itself, too bad the file is locked
int theresult = remove(tocharptr(fileanddir));
// returns -1, also: manually deleting at this point gives the error
// that the file is being used by another person/program
知道如何加载位图或以某种方式将其复制到内存中以使文件本身不会被锁定吗?
(所以我可以在加载后删除它)