不允许使用C++映像不完整类型

C++ CImage incomplete type is not alloweed

本文关键字:类型 映像 C++ 不允许      更新时间:2023-10-16

I get不完整类型不允许使用CImage图像
我用过这个:

出了什么问题?我以前从来没有叫过班。

using namespace std;
class CImage;

myfunction(hbitmap bmp)
{
    CImage image;
    image.Attach(bmp);
    image.Save("filename.jpg");
}

class CImage;是一个正向声明,它"告诉"编译器名为CImage的类存在,但不知道该类是如何定义的(因此类型不完整)。

您需要包含定义CImage类的头文件。尝试#include <atlimage.h>而不是class CImage;


来自MSDN CImage类文档:

使用CImage创建项目时,必须先定义CString,然后才能包含atlimage.h。如果您的项目使用不带MFC的ATL,请先包含atlstr.h,然后再包含atlimage.h。如果您的项目使用MFC(或者是支持MFC的ATL项目),请先包含afxstr.h,然后再包含atlimage.h

同样,在包含atlimpl.cpp之前,必须包含atlimage.h。要轻松完成此操作,请在stdafx.h中包含atlimage.h