【问题标题】:CREATESTRUCT error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\x\dcd\dcdchild.h 22 1CREATESTRUCT 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 c:\x\dcd\dcdchild.h 22 1
【发布时间】:2015-03-26 20:28:28
【问题描述】:

我正在尝试修改使用旧版 Visual Studio 编写的项目。我现在使用 Visual Studio 2010。当我打开项目时,它会自动转换为 2010 格式。但是,当我构建它时,我收到以下错误:

错误 1 ​​错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int c:\x\dcd\dcdchild.h 22 1

有问题的文件很小:

// dcdchild.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CDCDChildWnd frame

class CDCDChildWnd : public CMDIChildWnd
{
    DECLARE_DYNCREATE(CDCDChildWnd)
protected:
    CDCDChildWnd();         // protected constructor used by dynamic creation

// Attributes
public:

// Operations
public:

// Implementation
protected:
    virtual ~CDCDChildWnd();
    virtual CDCDChildWnd::PreCreateWindow(CREATESTRUCT& cs);

    // Generated message map functions
    //{{AFX_MSG(CDCDChildWnd)
        // NOTE - the ClassWizard will add and remove member functions here.
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

有问题的行是:

virtual CDCDChildWnd::PreCreateWindow(CREATESTRUCT& cs);

我查阅了 CREATESTRUCT 的定义,它是:

typedef struct tagCREATESTRUCT {
  LPVOID    lpCreateParams;
  HINSTANCE hInstance;
  HMENU     hMenu;
  HWND      hwndParent;
  int       cy;
  int       cx;
  int       y;
  int       x;
  LONG      style;
  LPCTSTR   lpszName;
  LPCTSTR   lpszClass;
  DWORD     dwExStyle;
} CREATESTRUCT, *LPCREATESTRUCT;

所以它确实包含变量类型 int。问题是,我该如何解决?

【问题讨论】:

    标签: c++ visual-studio-2010


    【解决方案1】:

    声明virtual CDCDChildWnd::PreCreateWindow(CREATESTRUCT& cs); 无效。它应该是这样的:

    virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
    

    【讨论】:

      【解决方案2】:

      您的方法没有声明返回类型:

      virtual CDCDChildWnd::PreCreateWindow(CREATESTRUCT& cs);
      

      你的意思可能是:

      virtual BOOL CDCDChildWnd::PreCreateWindow(CREATESTRUCT& cs);
      

      (错误消息指的是在早期版本的 C 中允许您省略返回类型,在这种情况下假定 int - 但是在 C++ 中不允许这样做。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-28
        • 2013-09-17
        • 1970-01-01
        • 2017-03-28
        • 1970-01-01
        • 2022-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多