微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

windows – Image析构函数中的访问冲突

我可能会说一个非常简单的程序..

#include <windows.h>
#include <gdiplus.h>

using namespace Gdiplus;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE,LPSTR cmdLine,int nShow){
    // Gdiplus variables
    GdiplusstartupInput mGdiplusstartupInput;
    ULONG_PTR           mGdiplusToken;
    Gdiplusstartup(&mGdiplusToken,&mGdiplusstartupInput,NULL);

    Bitmap bitmap(L"left.bmp");


    GdiplusShutdown(mGdiplusToken);
    return 0;
}

运行此示例时,我在此函数中的GdiplusBitmap.h中获得访问冲突

inline 
Image::~Image()
{
    DllExports::GdipdisposeImage(nativeImage);
}

通过删除对Bitmap位图的调用(L“left.bmp”);一切正常..我试图在msdn上找到一个简单的例子(例如在Bitmap constructor附近的某处,但没有找到任何东西.)

我错过了什么?

解决方法

调用关闭GDI之后,您创建的Bitmap实例超出了范围.因此,当Bitmap被破坏时,它无法调用给定的GdipdisposeImage方法.

如果确保在关闭GDI之前删除位图,则错误应该消失.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐