API是如何制作的?

时间:2014-12-26 18:35:56

标签: c++ api

其实我在问,如何使用C ++从头开始创建像SFML这样的库?

我错误地将误认为 API

我无意中重复了这个问题,这里是它的链接:

How create a library?

1 个答案:

答案 0 :(得分:4)

实际上,API只是某些现有(参考或样本)实现的记录的接口。

理论上,人们可以抽象地设计API。在没有任何实现的情况下实际执行此操作是一个代价高昂的错误(因为没有实现,您将不会考虑很多细节)。

另请阅读undefined behavior

请注意,纯标准C++11没有提供与外界交互的太多内容:C ++ 11标准不了解目录,键盘,鼠标,屏幕,声音,网络,GUI等。您的操作系统可能有更多相关的其他特定库。了解有关POSIX的更多信息,可以理解为操作系统服务的standardized API(遗憾的是,MicroSoft销售的某些专有操作系统不是本机 POSIX兼容;据传,你可能会为他们的Windows操作系统购买一些类似POSIX的界面,这些界面有自己的Windows API)。

如果要实现某些功能,您需要熟悉目标平台,即您要支持的操作系统。对于Linux,请开始阅读Advanced Linux Programmingintro(2)syscalls(2)intro(3)等...并详细研究free software实施的源代码(请参阅例如sourceforge ...)与您的目标相关。

如果您想要跨平台(例如能够在Linux和MacOSX上编译相同的代码),请更好地使用&利用现有的跨平台框架,例如QtPOCO,或(如果它们与您的需求相关)libsdlSFML。这些框架使用了一些特定于操作系统的API(并尝试在它们之上定义一些常见的抽象)。

PS。在实践中,设计一个好的API是一项困难的艺术。记录它是必不可少的。如果可能的话,让您的实现免费软件,并尝试获得建议和帮助。