【问题标题】:How Adobe made Photoshop cross-platform?Adobe 如何让 Photoshop 跨平台?
【发布时间】:2010-10-24 19:54:41
【问题描述】:

我想知道 Adob​​e 如何让 Photoshop 跨平台?我知道 Photoshop 完全是用 C++ 编写的,但是 GUI 呢? Adobe 是否使用 GUI 工具包?

【问题讨论】:

  • 我不完全确定是否诚实,但如果有帮助,值得查找 Nokia's Qt framework。我已经看到它在几个跨平台图形应用程序中使用,例如Nuke。 (我不会说 Photoshop 使用 Qt,Adobe 可能会推出他们自己的)

标签: c++ cross-platform adobe photoshop gui-toolkit


【解决方案1】:

对于任何本机编译的跨平台项目,解决方案通常是专门为特定平台编写称为“包装器”的一小部分代码。这些包装器直接与平台进行所有对话。

这使得像 Photoshop 这样的应用程序具有多平台,但它不一定构建在 Adob​​e 没有为其编写包装器的平台上。

【讨论】:

  • 是的,你是对的,我现在明白了,我在这里找到了一个“包装函数”的例子en.wikipedia.org/wiki/Wrapper_function 但我认为包装函数是一个非常漫长而艰难的软件跨平台解决方案!谢谢你 Shmoopty =)
【解决方案2】:

编写跨平台软件很乏味,但这里有一些简单的规则。

通常,您需要使用底层操作系统/环境的抽象,以便您的代码依赖于这个抽象而不是操作系统本身。这称为桥接模式。重要的是要了解添加到程序和操作系统之间的桥梁的功能越多,移植软件就越困难。在 Adob​​e 的情况下,他们使用操作系统的一小部分(小桥),因为他们有自己的 UI 和文本处理,因此他们只需要捕获鼠标/键盘输入并能够在窗口中绘图。

【讨论】:

  • 这就是隔离模型和视图逻辑非常重要的原因。我确信他们的大部分操作逻辑都建立在他们自己的内部 C++ API 之上,并且他们的黑盒逻辑中的端点与操作系统特定的 GUI 类相关联。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 2015-12-18
相关资源
最近更新 更多