#if !defined(AFX_GEOTRANS1_H__348C83D6_4910_495A_953E_4020CF9A5D48__INCLUDED_)
#define AFX_GEOTRANS1_H__348C83D6_4910_495A_953E_4020CF9A5D48__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000#include "Dib.h"class CGeoTrans : public CObject  
{
public:
void Scale(CDib* pOrigDib, int nWidth, int nHeight, int nOperation);
BOOL MirrorY(CDib* pOrigDib, int x, int y, int nWidth, int nHeight);
BOOL MirrorX(CDib *pOrigDib, int x, int y, int nWidth, int nHeight);
  CGeoTrans();
virtual ~CGeoTrans();    BOOL TranslationDIB1(CDib* m_pCurrentDib, LONG lXOffset, LONG lYOffset);
void Rotate(CDib* pOrigDib, int nXCenter, int nYCenter, float fTheta);
// HLOCAL m_hGEO; //控制内存分配

private:
BYTE* lpNewDIBBits;
HLOCAL hNewDIBBits;
         CDib* m_pTransDib;
#ifdef _DEBUG
virtual void Dump(CDumpContext& dc) const;
virtual void AssertValid() const;
#endif};#endif // !defined(AFX_GEOTRANS1_H__348C83D6_4910_495A_953E_4020CF9A5D48__INCLUDED_)以下是部分调试不通过的代码..
.cpp中有一个函数用到了BYTE* lpNewDIBBits;
             HLOCAL hNewDIBBits;
                       CDib* m_pTransDib;
例如:
m_pTransDib = new CDib;
m_pTransDib->DibCopy(pOrigDib);         hNewDIBBits = LocalAlloc(LHND, nOrigDibWidthBytes * pOriginDib->m_nHeight);
if (hNewDIBBits == NULL)
{
    // 分配内存失败
::AfxMessageBox("分配内存失败");
    return FALSE;
}
 // 锁定内存
    lpNewDIBBits = (BYTE*)LocalLock(hNewDIBBits);

解决方案 »

  1.   

    nOrigDibWidthBytes和pOriginDib->m_nHeight的值分别是多大呢?
      

  2.   

    大约是几百?不过不是这个大小的问题?我试过申请小的内存也不可以...是不是我定义类的时候出什么错?基类是CObject没有做别的修改...generic class
      

  3.   

    m_pTransDib = new CDib;
    m_pTransDib = LocalAlloc(LHND, nOrigDibWidthBytes * pOriginDib->m_nHeight);
    lpNewDIBBits = (BYTE*)LocalLock(hNewDIBBits);
    就在这三句话上调试不通过..
    如果我把成员变量m_pTransDib、  m_pTransDib、  lpNewDIBBits分别定义到成员函数的内部就没有什么问题了..为什么啊??为什么??
      

  4.   

    private:
    BYTE* lpNewDIBBits;
    HLOCALhNewDIBBits;
             CDib* m_pTransDib;
    定义成public试试
    public:
    BYTE* lpNewDIBBits;
    HLOCALhNewDIBBits;
             CDib* m_pTransDib;
      

  5.   

    估计你的那个成员函数是public:类型
      

  6.   

    成员函数是public的..把成员函数改成了public也是不行..郁闷死了,本来不应该出现这种错误的....
      

  7.   

    把成员变量改成了public的也不行....在doc里这样定义就可以..自定义的类中就不可以...可能的错误出在哪里?