本文介绍了像素数据到CBitmap的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

运行此代码时遇到运行时错误。任何人都可以帮忙。

A runtime error is encountered while running this code. Can anyone please help.

int* pix = new int[50 * 50 * sizeof(int)];
for(int i = 0; i < 50; i++)
{
    for(int j = 0; j < 50; j++)
    {
        *pix = j;
        pix++;
    }
}
CBitmap* img = 0;
img->CreateBitmap(50, 50, 1, 8, pix);

推荐答案

CBitmap* img = 0;
// This is a NULL pointer access resulting in a runtime error:
// Think of: NULL->CreateBitmap()
img->CreateBitmap(50, 50, 1, 8, pix);



你必须为 CBitmap 使用 new 对象或在堆栈上创建对象:


You must allocate memory for the CBitmap object using new or create the object on the stack:

// Allocate object
CBitmap* pImg = new CBitmap;
pImg->CreateBitmap(50, 50, 1, 8, pix);
// Using pImg here
delete pImg;

// Or create object on the stack
CBitmap Img;
Img.CreateBitmap(50, 50, 1, 8, pix);


这篇关于像素数据到CBitmap的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-21 04:30