error C2011: “Picture”:“struct”类型重定义

今天引用外来库时出现问题,也许是版本问题。

错误如下:

.....oursuncincludesquickdraw.h(309): error C2011: “Picture”:“struct”类型重定义

1> c:program files (x86)microsoft visual studio 10.0vcincludecomdef.h(326) : 参见“Picture”的声明

其中Picture声明如下:

__if_not_exists(Picture)
{
  struct Picture : IPictureDisp {};
}

struct定义如下:

struct Picture {
    short                           picSize;
    Rect                            picFrame;
};
typedef struct Picture                  Picture;

typedef Picture *                       PicPtr;
typedef PicPtr *                        PicHandle;

  应该是程序版本不一致的问题,暂且不深究什么原因。

  解决方法如下:

  既然说是重定义,那就另改一个别名了。

struct Picture1 {
    short                           picSize;
    Rect                            picFrame;
};
typedef struct Picture1                  Picture1;

typedef Picture1 *                       PicPtr;
typedef PicPtr *                        PicHandle;

  ok,问题解决。回家吃饭。

原文地址:https://www.cnblogs.com/songliquan/p/3368844.html