gpt4 book ai didi

winapi - 包装器和框架有什么区别?

转载 作者:行者123 更新时间:2023-12-05 01:13:25 25 4
gpt4 key购买 nike

Win32 或 DirectX 包装器与 Win32 或 DirectX 框架有什么区别?

最佳答案

包装器通常是一系列函数,其中包含对库或 API(如 win32、DirectX 等)的函数调用,以某种抽象的方式提供给最终用户。很多时候它们是定制的,因此您在包装器中调用的函数与原始 API 不完全相同,或者已经为您设置了一些默认参数以使您使用 API 更容易一些。同样在语言包装器的特定实例中,功能已嵌入到语言的运行时 API 中,然后暴露给最终用户。例如,可以通过使用 win32 API 调用为 python 创建一个 C 库插件,然后创建一个 python 库,该库可能具有自定义的 python 函数,这些函数调用由C 库插件。在这种情况下,Python 库“包装”了基于 C 的 native win32 库。

框架就像一个包装器,但在其最常用的定义中,它有点不同,因为它通过创建某种类型的运行时环境来工作,您可以创建要插入的回调,以便当框架- work wants to-do some task,你已经编写了一个为该任务调用的函数。这被称为编程的“好莱坞校长”,基本上是在说,“不要调用我们,我们会调用你”。因此,在使用此模型时,您创建函数,将它们注册到框架中,然后在框架需要调用它时调用您的函数,并且框架将其自己的内部参数作为您的函数参数传递。一个很好的例子是 GUI 框架,您可以在其中为按钮和其他事件创建回调,并且 GUI 框架在处理其运行时事件循环时调用这些函数。

因此,我想考虑两者之间主要区别的一种方法是包装器往往是静态的(即使用自定义函数调用公开库和函数,为您填充默认值或将它们翻译成不同的语言),而框架往往是动态的(即,它是一个运行时系统,您可以为其创建回调,并将其注册到框架,然后在运行时事件循环或内核等的某个时间段内调用它,例如 GUI 工具包)。

关于winapi - 包装器和框架有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5846205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com