C# 调用GDAL编写的动态链接库dll,后不能将生成的图像显示到picturebox上,显示内存不足

今天,为了测试一下dll,并将接口生成的.bmp图像显示到picturebox上时,发生错误,显示内存不足;

开始以为是图片过大,可是检查发现图片64k,这么小怎么可能内存不足呢?又怀疑是显示图片的代码不对?

picturebox.Image = Image.FromFile(@path);

检查以前的工程就是这样用,没有问题,于是手贱贱区双击生成的图像,妈呀,打不开?原来被占用了,突然灵光一现,

将显示图像的代码注释掉,生成图片后,直接双击,依然被占用,只有退出工程之后才能打开,所以,很自然的想到(其实一

点也不自然,试了好长时间才发现的大哭)是不是dll中GDAL本身一直占用图像资源没有释放的原因呢?于是,查看源代码,

发现不知什么时候,把 

GDALDestroyDriverManager();

注释掉了,那么加上之后呢,万事大吉:


但是:注意,这一句销毁驱动管理器需要在最后的最后的最后去做,否则,完犊子。直接表现就是在C#调用DLL时,出现“读取受保护内存”的错误,请参考:GDALDestroyDriverManager 分析


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值