我遇到了使用CImage
类的问题,该类是MFC的一部分:
void SaveBmp(HBITMAP handle, CString name)
{
CImage image;
image.Attach(handle);
image.Save(name,ImageFormatBMP);
}
符号ImageFormatBMP
是未声明的标识符。
我进入了MSDN section for the CImage class,在页面顶部看到了这个奇怪的音符:
This class and its members cannot be used in
applications that execute in the Windows Runtime.
有人可以向我解释这个(荒谬的IMO)注释的含义吗?
除了Windows应用程序之外,还可以使用此类吗?
谢谢。
答案 0 :(得分:5)
Windows运行时(WinRT)是一个可用于应用程序的特殊运行时。本说明只是告诉您,如果开发一个在WinRT下运行的应用程序,则此类不可用。
来自维基百科的引用:
Windows运行时(WinRT)是一个与平台无关的应用程序 架构首先在Windows 8和Windows Server 2012中引入 WinRT支持C ++ / CX(Component Extensions,一种基于C ++的语言),JavaScript-TypeScript和托管代码的开发 语言C#和Visual Basic .NET(VB.NET)。 WinRT应用程序 本机支持x86和ARM处理器,并在内部运行 沙箱环境,以提供更大的安全性和稳定性。 WinRT的 组件设计具有多个之间的互操作性 语言和API,包括本机,托管和脚本 语言。
https://en.wikipedia.org/wiki/Windows_Runtime
此外,ImageFormatBMP是GDIPlus的一部分,但不是CImage类的一部分。因此,使用它需要使用包含GDIplus的gdiplus头和相应的命名空间。