难道是WINAPI的WIC(Windows图像处理组件)和DirectX的一部分? [关闭]

问题描述 投票:1回答:1

林困惑的是WINAPI的,哪些不是。

对我来说,由微软开发的应该是什么WINAPI,对我来说很有意义。但林不知道。

我使用WINAPI而已,它是一门功课,我发现的LoadImage是GDI的一部分加载图像,我知道GDI是WINAPI的一部分,但它仅与BMP的作品,所以GDI +,它似乎与其他工作格式。

在我的研究,我发现其他的方法,如使用DirectX的,因为速度更快,或WIC至极我了解是一个COM(我想这代表组成)OLeLoadPicture和IShellImageDataFactory至极能帮助我加载JPG

是所有的人的Win32的一部分吗?

我曾在一个论坛https://www.gamedev.net/forums/topic/385330-does-directx-just-wrap-the-win32-api/读取DirectX是不是win32的组成部分,它的工作原理与硬件紧密的水平,并且就没有使用的DirectX如win32会已经做的工作​​的意义。它也说,DirectX的包装一些Win32函数,但只是一些对话框和窗口句柄,无关的图像处理,也有人说,Win32使用一些DXD9 API的。 DirectX的专为Windows,因此是很有意义把它归类为WINAPI我。

是COM组件的Win32的一部分吗?

我的问题是,你怎么能知道什么是,什么不是的Win32 API的一部分吗?

enter image description here

正如你所看到的,在面包屑没有WINAPI部分但WIC发生同样的情况

enter image description here

但是,如果你看看WINAPI MSDN列表https://docs.microsoft.com/en-us/windows/desktop/apiindex/windows-api-list你还指出,它被称为WINAPI或的Win32 API的列表中找到,向下滚动,你会看到有上市的DirectX,壳牌也COM对象

enter image description here

林问,是因为读有不同的回答让我很困惑,基于API列表,我认为的DirectX,COM和壳牌都包裹通过/部件的Win32 API中。

还因为我想使用DirectX更好的影像处理性能,我不希望我的教授这样说......“哦,你不使用的Win32 API,你将不得不重复的过程”,因为我敢肯定它会发生,当有人指出作为真正的东西时,它不是如果出现这种情况,我想有足够的信心,证明我还在使用Win32 API,我不喜欢。

在使用GDI +的那一刻,似乎对我来说是更安全的路径,我认为,但如果我可以使用DirectX我宁愿用它。

c++ winapi directx gdi wic
1个回答
3
投票

也许你会得到这里的最好的答案是归结为回答这个问题:是包含在Windows操作系统的API,或者是你必须安装之前,你可以用它的东西吗?

由于Windows XP服务包2(以及相关的Windows Server 2003的Service Pack 1)每个版本的Windows已列入“DirectX的”作为操作系统的一部分,但到底是什么成分包括“DirectX的”随时间发生变化。 Windows图像处理组件(WIC)一直以来的Windows Vista(以及相关的Windows Server 2008)操作系统。

Not So Direct Setup

因为Windows SDK版本6. Direct2D的头已经在Windows SDK自Windows SDK版本7的DirectX的其余全部被放入Windows SDK版本8 WIC的头已经在Windows SDK。

Where is the DirectX SDK?

FWIW,GDI +是非常古老和推荐的API肯定是使用Direct2D和WIC来代替。您可以直接使用这些作为COM接口,也可以使用一个包装助手库像Win2D

至于所引用论坛的问题,这是一个很多关于内部架构的猜测。基本的答案是DirectX的一直是一个系统的组成部分,但在过去微软发布它通过DirectX运行一个巨大的补丁。事实上,这是一个非常侵入性的补丁,必须更新许多不同版本的操作系统。由于Windows XP SP2中的,它只是在操作系统的另一个系统组件。

作为一个小脚注历史,WIC恰恰是因为创建GDI +是一个巨大的安全问题,早在Windows XP中的初期阶段。许多操作系统组件和Microsoft应用程序现在使用WIC来完成所有的位图负荷集中的模糊测试和安全服务。例如,旧D3DX9助手库包括它的各种编解码器位的自己的副本,而D3DX10和D3DX11助手库只是使用WIC - 因为这样做更modern replacements

© www.soinside.com 2019 - 2024. All rights reserved.