Wpf 关于创建自己的GUI库的书籍

Wpf 关于创建自己的GUI库的书籍,wpf,winforms,qt,opengl,graphics,Wpf,Winforms,Qt,Opengl,Graphics,我经常通过WinForms、WPF和Qt为自己的程序创建GUI,但对我来说,理解如何创建类似的平台很有趣。我想了解原理,看看简单的代码示例(C,C++,C语言或普通LISP)。 平台如何与操作系统交互以创建图形界面 我试图找到关于这些信息的书籍或网站,但什么也找不到。有人能帮我链接吗 我很感兴趣的是如何创建一个不是现有库的包装器的库。此类库(不是包装器)应以某种方式与操作系统交互,接收和发送不同的信号(鼠标点击、键盘键点击、鼠标重新定位、热键点击等)。我想了解如何自己解决这些问题,而不使用包装器

我经常通过WinForms、WPF和Qt为自己的程序创建GUI,但对我来说,理解如何创建类似的平台很有趣。我想了解原理,看看简单的代码示例(C,C++,C语言或普通LISP)。 平台如何与操作系统交互以创建图形界面

我试图找到关于这些信息的书籍或网站,但什么也找不到。有人能帮我链接吗

我很感兴趣的是如何创建一个不是现有库的包装器的库。此类库(不是包装器)应以某种方式与操作系统交互,接收和发送不同的信号(鼠标点击、键盘键点击、鼠标重新定位、热键点击等)。我想了解如何自己解决这些问题,而不使用包装器

请注意:我不会问如何使用WinForms、WPF或Qt(它是其他的)。

像大多数其他软件一样,这些“平台”(实际上是:应用程序开发框架)是以增量方式创建的。你从小处做起,不断成长,在前进的过程中经常会把事情弄糟。当然,所有软件都是如此:)

但更严重的是,没有“如何”的概念。“如何”是成为一名优秀软件开发人员所需要的一切,它包含了广泛考虑的软件工程实践。这些确实是应用程序开发框架。“GUI”一词显然不存在。用户界面只是这些框架的一个方面。例如,Qt用于某些信用卡处理服务器代码中。没有图形用户界面

你找不到关于这方面的“书籍”或“网站”,因为你太具体了。你想要关于软件工程实践的“书籍”或“网站”:如何成为一名优秀的软件工程师。其中有很多,涉及软件工程的各个方面:接口(API)设计、可靠性、测试、用户体验和可用性、性能的各个方面、现代GPU编程、您选择的操作系统公开的接口(比如),等等。这些都是你要找的书的主题

如果你想从各种框架的开发中获得一些具体的趣闻轶事,这里有很多——只有谷歌。您还可以查看源代码以了解它是如何完成的。但实际上并没有关于Qt内部架构的书籍。它们几乎没用了

不需要包装器有点愚蠢,因为您没有明确指定要停止的级别。回想一下,现在很多“包装器”都是作为操作系统的一部分提供的(WINAPI、glibc/POSIX层、.Net、WPF、Cocoa)

如果您想要一些真正不在包装器上运行的东西,您需要为CPU编写微码。上面只有多层包装。CPU实际上运行它的微码,然后解释更高级的指令集,内核的机器代码用它来表示,由多层用户代码调用。名义上没有人对内核进行编程(NT平台上的内核调用,Unices上的系统调用),正如您所暗示的那样。您已经在使用一个包装器:广泛使用的WINAPI是内核接口的一个相当大的包装器,就像C和POSIX/UNIX库一样。如果你看一下代码库,大部分代码都实现了WINAPI功能,而不是NTDLL(内核接口)

如果您想在Windows上编写NT内核接口的代码,您需要,但是没有人真正在开发高级框架时使用它,因为这是毫无意义的。所以包装纸就留在那里了


现在,人们认识到包装器与我们在一起是有原因的,一个明显的问题是:为什么你任意选择一层包装器作为你的停止点。编码到WINAPI有什么比编码到Qt或Carbon更好的呢?

所以你想找到关于他们如何制作Qt等的书吗?创建Qt可以被视为一个示例。。。我想了解这样的图书馆创建的原则。你考虑过谷歌吗?另外,在你发布进一步的问题之前,你应该阅读,因为你的问题不符合要求。当然,我找了。如果你对我的问题有具体的回答,我会很高兴的。如果响应不存在,那么编写就没有意义。堆栈溢出是针对代码问题的站点,而不是针对工具/书籍建议的站点。然而,我认为这个问题不值得投反对票。我想阅读关于特定主题的文章,以便更好地理解它是如何“在屏幕后面”工作的。我很感兴趣。这不是犯罪。我很感兴趣的是如何创建一个不是现有库的包装器的库。此类库(不是包装器)应以某种方式与操作系统交互,接收和发送不同的信号(鼠标点击、键盘键点击、鼠标重新定位、热键点击等)。我想知道如何自己解决这些问题,而不用包装纸。我完全同意布什的观点。这个答案并不试图回答这个问题。对克莱门斯、布卢夫、达滕沃尔夫、根普福尔特、弗洛伦特来说:这个话题对我来说很有趣。如果你不明白我的问题,这不是结束这个话题的原因。@Bush:我确实试图回答这个问题。你想做的事情一点也不具体。通用软件工程实践适用于it。没有比这更具体的了,因为您正在设计一个应用程序框架。很多软件工程都是关于为不太通用而设计的框架,但这基本上就是它的全部内容。@Bush:所以我已经准确地告诉了你需要阅读的内容。阅读深入研究接口(API)、可靠性、测试和用户体验的软件工程书籍,我引用自己的话