产品想热更新美术资源,图片加载使用的GDIPlus的CreateBitmapFromFile
但是这个方法的底层,使用了FileMapping,因此只要不释放对象,文件一直是被锁定的,无法被热更新。
把这个Bitmap对象用Clone方法复制出一份,但是复制出来的对象还是使用FileMapping占用着文件。
后来改用SHCreateStreamOnFileEx方法从文件创建IStream,然后用这个IStream再创建Bitmap
这样就不锁定原文件了,终于可以热更新了
这个过程用ProcessMonitor监控程序运行中的文件相关函数调用,确定问题的
本文介绍了一种解决GDIPlus的CreateBitmapFromFile方法在热更新美术资源时导致文件锁定的问题。通过采用SHCreateStreamOnFileEx创建IStream,进而创建Bitmap对象的方法,成功实现了资源的热更新。
8518

被折叠的 条评论
为什么被折叠?



