Winapi 如何创建自己的API/框架/库

Winapi 如何创建自己的API/框架/库,winapi,api,frameworks,programming-languages,libraries,Winapi,Api,Frameworks,Programming Languages,Libraries,有些图书馆对我来说很明显。我的意思是我可以自己创建数学、字符串等库。我不明白人们是如何创建像OpenGL、OpenCV、DirectX和MFC这样的API的。我不知道如何自己编写它们,就像我编写库来计算数学和字符串函数一样。网络上有什么资源可以教我如何去做这件事。这些图书馆是由两件事驱动的 1) 是他们正在工作的领域(尤其是GPU体系结构,以及他们的功能和限制),以及 2) API设计器查看的这些功能的模型 简单地说,有人对问题领域有一些(理想的)合理的理解,他说:“我认为如果你想使用GPU,我

有些图书馆对我来说很明显。我的意思是我可以自己创建数学、字符串等库。我不明白人们是如何创建像OpenGL、OpenCV、DirectX和MFC这样的API的。我不知道如何自己编写它们,就像我编写库来计算数学和字符串函数一样。网络上有什么资源可以教我如何去做这件事。

这些图书馆是由两件事驱动的

1) 是他们正在工作的领域(尤其是GPU体系结构,以及他们的功能和限制),以及

2) API设计器查看的这些功能的模型

简单地说,有人对问题领域有一些(理想的)合理的理解,他说:“我认为如果你想使用GPU,我希望GPU看起来像这样”,并提出了一个模型,展示给API消费者。然后,编写框架以转换API设计器根据底层机制(在本例中为GPU)的实际工作设计的模型视图

考虑像对象关系映射器工具这样的东西。在这里,他们试图展示一个与底层关系表示相匹配的OO视图

设计师们可能对他们想要的东西有了一些想法,试着看看它有多逼真,然后开始填充缝隙并抛光边缘

开始的方法是简单地选择一个你有知识但不喜欢它工作方式的领域,然后想“天哪,这样更好”,然后开始解决这个问题。如果一切顺利,你会有一些动力,这个过程可能会变得更有机一些。但是,最好不要太有机

最困难的部分是让你的新API正常工作,并像不知道API的人一样使用它,或者不知道域会使用它。使用它还可以让您有机会再次遇到“天哪,这样会更好”阶段

冲洗并重复,直到你对结果满意为止

很少有论文设计与系统的实际开发相联系。有些API做得比其他API好,但在您开始使用它之前,很难知道作为开发人员API的感受如何


因此,您可以自己尝试一些API,研究您喜欢的API,研究您讨厌的API,并思考如何改进它们,然后进行一些概念验证实现,看看它是如何运行的。

这些库由两个因素驱动

1) 是他们正在工作的领域(尤其是GPU体系结构,以及他们的功能和限制),以及

2) API设计器查看的这些功能的模型

简单地说,有人对问题领域有一些(理想的)合理的理解,他说:“我认为如果你想使用GPU,我希望GPU看起来像这样”,并提出了一个模型,展示给API消费者。然后,编写框架以转换API设计器根据底层机制(在本例中为GPU)的实际工作设计的模型视图

考虑像对象关系映射器工具这样的东西。在这里,他们试图展示一个与底层关系表示相匹配的OO视图

设计师们可能对他们想要的东西有了一些想法,试着看看它有多逼真,然后开始填充缝隙并抛光边缘

开始的方法是简单地选择一个你有知识但不喜欢它工作方式的领域,然后想“天哪,这样更好”,然后开始解决这个问题。如果一切顺利,你会有一些动力,这个过程可能会变得更有机一些。但是,最好不要太有机

最困难的部分是让你的新API正常工作,并像不知道API的人一样使用它,或者不知道域会使用它。使用它还可以让您有机会再次遇到“天哪,这样会更好”阶段

冲洗并重复,直到你对结果满意为止

很少有论文设计与系统的实际开发相联系。有些API做得比其他API好,但在您开始使用它之前,很难知道作为开发人员API的感受如何

因此,您可以自己尝试一些API,研究您喜欢的API,研究您讨厌的API,并思考如何使它们更好,然后进行一些概念验证实现,看看它是如何运行的