在定义一个结构是用到了,但是编译出错:
typedef struct _HZPH{
        TCHAR szHZ[2*(MAX_PY_LEN+1)];
        DWORD dwAttrib;
        struct _HZPH __based(lpMapFileBase) *lpNext;//
}HZPH,FAR* LPHZPH;在程序里面有个这个机构的指针lpHZPH
lpHZPH=(LPHZPH)((LPBYTE)lpMapFileBase+dwBaseOffset+dwMapFileOffset);
报如下的错误:
cannot convert from 'struct _HZPH *' to 'struct _HZPH __based(lpMapFileBase) *'
我写的是个cpp文件,别人在c里面用一样的东西,没有问题啊?

解决方案 »

  1.   

    lpHZPH声明有误吧?void * lpMapFileBase;
    typedef struct _HZPH{
            TCHAR szHZ[2*(MAX_PY_LEN+1)];
            DWORD dwAttrib;
            struct _HZPH __based(lpMapFileBase) *lpNext;//
    }HZPH,FAR* LPHZPH;LPHZPH lpHZPH=(LPHZPH)((LPBYTE)lpMapFileBase+dwBaseOffset+dwMapFileOffset);上面这段代码应该没问题
      

  2.   

    检查一下代码呢。如我所写的代码不应该存在convert from 'struct _HZPH *' to 'struct _HZPH __based(lpMapFileBase) *'这种动作啊
      

  3.   

    这和win32的代码或者mfc的代码有没有什么关系啊?
    原来是win32的c代码,我改写为c++的了