补充一个图:JUCE类库模块层次与依赖关系

下图由笔者(Running)在写作巨著Cross-Platform Programming with C++ and JUCE《用JUCE类库进行C++跨平台开发》一书时所绘制(此书厚达1,300多页,并非面对新手的入门级教程,阅读起点至少是有一定水平和经验的C++一线程序员。正因为此书过于厚重,加上JUCE类库在全球的用户还不够多,知名度不高,导致没有任何一家出版社愿意干赔本买卖……实在遗憾)。

继续阅读补充一个图:JUCE类库模块层次与依赖关系

JUCE GUI程序的启动与退出

启动顺序与执行流程为:

启动宏—>程序主体类—>窗口框架类—>基础组件类—>内容组件类(包含子组件、控件、其他界面元素等,可层层包含)

注:“程序主体类”可称为“主程序类”。“窗口框架类”亦可称为“主窗口类”或“带标题栏的桌面窗口”。这些JUCE专有“术语”,仅为了说明方便,由笔者(Running)自行命名与约定,不是太严谨。诸位不必深究。这一点,在今后的发文中,不再另行注明。如有疑问,请移步此处交流研讨。

继续阅读JUCE GUI程序的启动与退出

JUCE类库快速上手的最佳方案

首先,对C++这门计算机语言要有所了解,最好有一定的编程经验。能用面向对象的方法,采取不同的维度和角度来分析,解决,提炼并总结所遇到的各类问题。

当然,这不是必须的。直接从实际需求和JUCE类库下手,开门见山,刺刀见红,边干边学,以干促学,其实也未尝不可,甚至效率更高,进步更快。只是C++语言本身和面向对象的思维方式,其内涵实在过于庞杂深远,学习曲线更是公认的陡峭。直接开干,过一段时间之后,尽量还是要回头再深究一下基础性的东西,包括数据结构与算法、设计模式等必修内容。否则,仅靠盲目实践,就算依托于JUCE这样的优秀类库,到了一个点之后,也很难再有精进。

而后……

继续阅读JUCE类库快速上手的最佳方案

各平台下编译JUCE项目所推荐的IDE

如果使用Introjucer来构建和管理开发项目,一切都变得极度简单。Introjucer会自动生成各个平台下对应IDE的项目文档。在Introjucer中即可打开平台对应的IDE(前提是已经安装),编译即可。在跨平台移植和编译等方面,甚至一行代码都无需写。你所要做的,仅仅是编写项目代码而已。这一点可以说节省了海量的时间、人力和财务成本。

继续阅读各平台下编译JUCE项目所推荐的IDE

JUCE类库其它方面的功能与特色

  • 平台无关的程序启动与退出。可构建控制台应用程序。
  • 项目本地化(字符串资源的本地化翻译)。
  • 撤销/重做。
  • 文档处理类,比如磁盘文档的加载、读取、保存等等。
  • 可直接关联菜单、快捷键和按钮触发的程序命令及命令目标类。
  • 快捷键编辑功能。
  • 程序属性(设置)数据的读写。

继续阅读JUCE类库其它方面的功能与特色

XML和JSON方面的主要特色

JUCE类库比较完美的支持XML和JSON,主要特色有:

  • 快速,干净,完全整合的XML和JSON解析器,可读写。支持扩展实体和外部实体。
  • 可将XML和JSON作为一种重要的数据结构来使用,在涉及到程序数据读写时,配合File、输入、输出流等类,使用这种结构,快捷方便,事半功倍。
  • 强大而简单易用的var类(泛型数据类型,也可称为万用数据类型。甚至可以映射Javascript对象类型)。

JUCE类库MIDI方面的主要特色

  • 支持MIDI I/O,MAC和Linux下支持虚拟MIDI驱动。
  • 简单易用的MIDI封装,无需直接设置和操纵字节即可随意操作处理MIDI消息。
  • MIDI缓冲类可有效的采集并编辑MIDI数据流。
  • 直接提供了一个实用的虚拟键盘(高级GUI)。
  • MIDI进出监视类。
  • MIDI合并与重计时,可实现与音频的自动同步。
  • 读写标准MIDI格式。