【SonicUI】最可能的异常: Microsoft C++ 异常: 内存位置 0x0011f280 处的 char。

来源:互联网 发布:js是什么文件可以执行 编辑:程序博客网 时间:2024/06/15 16:45


关于

“SonicUIDemo.exe”: 已加载“C:\Windows\System32\asycfilt.dll”SonicUIDemo.exe 中的 0x7516812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0011f280 处的 char。SonicUIDemo.exe 中的 0x7516812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0011f280 处的 char。SonicUIDemo.exe 中的 0x7516812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0011f280 处的 char。“SonicUIDemo.exe”: 已加载“D:\Program Files\youdao\Dict\6.2.54.2064\WordStrokeHelper32.dll”


通过源码查看。

 _SkinMgr.Init();

pImgButton->Load(PNG_BUTTON); 在加载PNG图片时会出现以上异常提示。。


CxImage img;img.Decode(pData, dwSize, 0);

发现楼主是这样的定义的CxImage的 Decode的。。

其实  bool Decode(BYTE * buffer, DWORD size, DWORD imagetype);  最后一个参数数需要Image类型的。

enum ENUM_CXIMAGE_FORMATS{CXIMAGE_FORMAT_UNKNOWN,#if CXIMAGE_SUPPORT_BMPCXIMAGE_FORMAT_BMP,#endif#if CXIMAGE_SUPPORT_GIFCXIMAGE_FORMAT_GIF,#endif#if CXIMAGE_SUPPORT_JPGCXIMAGE_FORMAT_JPG,#endif#if CXIMAGE_SUPPORT_PNGCXIMAGE_FORMAT_PNG,#endif#if CXIMAGE_SUPPORT_MNGCXIMAGE_FORMAT_MNG,#endif#if CXIMAGE_SUPPORT_ICOCXIMAGE_FORMAT_ICO,#endif#if CXIMAGE_SUPPORT_TIFCXIMAGE_FORMAT_TIF,#endif#if CXIMAGE_SUPPORT_TGACXIMAGE_FORMAT_TGA,#endif#if CXIMAGE_SUPPORT_PCXCXIMAGE_FORMAT_PCX,#endif#if CXIMAGE_SUPPORT_WBMPCXIMAGE_FORMAT_WBMP,#endif#if CXIMAGE_SUPPORT_WMFCXIMAGE_FORMAT_WMF,#endif#if CXIMAGE_SUPPORT_J2KCXIMAGE_FORMAT_J2K,#endif#if CXIMAGE_SUPPORT_JBGCXIMAGE_FORMAT_JBG,#endif#if CXIMAGE_SUPPORT_JP2CXIMAGE_FORMAT_JP2,#endif#if CXIMAGE_SUPPORT_JPCCXIMAGE_FORMAT_JPC,#endif#if CXIMAGE_SUPPORT_PGXCXIMAGE_FORMAT_PGX,#endif#if CXIMAGE_SUPPORT_PNMCXIMAGE_FORMAT_PNM,#endif#if CXIMAGE_SUPPORT_RASCXIMAGE_FORMAT_RAS,#endifCMAX_IMAGE_FORMATS};


以上是类型定义。。


typedef enum IMAGE_FORMAT{IMAGE_UNKNOWN = 0,IMAGE_BMP,IMAGE_GIF,IMAGE_JPG,IMAGE_PNG,IMAGE_ICO,IMAGE_TAG,};

\SonicUI_src\include\ISonicUI.h


void CSkinMgr::Init(){pImgNormal = GetSonicUI()->CreateImage();pImgNormal->Load(BMP_NORMAL,IMAGE_BMP);pImgNormal->SetColorKey(RGB(255, 0, 255));pImgHover = GetSonicUI()->CreateImage();pImgHover->Load(BMP_HOVER,IMAGE_BMP);pImgHover->SetColorKey(RGB(255, 0, 255));pImgClick = GetSonicUI()->CreateImage();pImgClick->Load(BMP_CLICK,IMAGE_BMP);pImgClick->SetColorKey(RGB(255, 0, 255));pImgGif = GetSonicUI()->CreateImage();pImgGif->Load(GIF_TEST1,IMAGE_GIF);pImgCard = GetSonicUI()->CreateImage();pImgCard->Load(BMP_CLICK,IMAGE_BMP);pImgButton = GetSonicUI()->CreateImage();pImgButton->Load(PNG_BUTTON,IMAGE_PNG);pImgDlg = GetSonicUI()->CreateImage();pImgDlg->Load(PNG_DLG_BG,IMAGE_PNG);pImgDlg->DestroyAlphaChannel();pImgClose = GetSonicUI()->CreateImage();pImgClose->Load(PNG_CLOSE,IMAGE_PNG);}

\SonicUI_src\SonicUIDemo\SkinMgr.cpp

在Load时,传入图片格式,则可以处理掉 Microsoft C++ 异常: 内存位置 0x0011f280 处的 char


virtual BOOL Load(UINT nResId, UINT nFormat,HMODULE hResModule = NULL, LPCTSTR szResourceType = NULL);

virtual BOOL Load(UINT nFormat,HGLOBAL hGlobal, DWORD dwSize);

virtual BOOL Load(LPCTSTR lpszFileName,UINT nFormat);


以上都是需要处理的函数。。


\SonicUI_src\SonicUI\SonicImage.h






0 0
原创粉丝点击