CPG,英文缩写 Corel Plugin,中文含义是 Corel 插件,简称CPG插件,典型代表有魔镜。CDR是鼎鼎大名的创意图形设计软件,几乎是广告、印刷行业的标准,而正是由于CDR在日常的排版、设计和制作过程中,经常会遇到大批量图形处理,比如条幅、名片、拼版、文字连襟等等,这种工作如果由人工操作,不仅耗时,还容易出错,效率不高。
为了解决这些问题,CDR软件提供了插件机制,CPG插件就是其中的一种,另外还有GMS插件。CPG插件是最高级的一种插件,其自由灵活程度、上手开发难度都比GMS插件要高得多。读者如果是CDR插件新手,或者从来没有接触过CDR插件开发,可移步至博主的GMS插件独立专栏:《CDR插件开发之GMS插件(VBA)》。本专栏仅讨论CPG插件相关的内容,面向有一定编程经验的开发者(至少有VBA编程经验,如果有C++或者C#编程语言的知识最佳)。
CPG插件的本质
CPG插件的本质其实是DLL,即动态链接库,只不过它的后缀名是 .cpg。CDR在启动过程中,会自动加载 Plugins 或者 plugins64 目录下的 cpg 文件(其实就是加载DLL文件),从而实现插件的加载。如下图所示,说明了CPG插件在CDR X4版本中的存放目录:
以下是CPG插件的启动效果,功能很简单,就只是在CDR启动完成后,弹出一个消息框。
CPG插件由什么工具开发
CPG插件本质上是DLL,所以理论上来说,绝大部分能够编写DLL并编译TLB类型库的开发工具,都可以拿来编写CPG,只不过这方面的资料极为稀少。目前已知的开发方式有 Visual Studio(使用C++语言开发)、Delphi 等。Delphi 语言算起来也是比较古老的语言了,博主本人在很多年前接触过,如今早已忘得渣都不剩了,因此就不在本专栏文章的讨论范围里面了,如果有感兴趣的读者,可以自行去探索。技术之路,重在实践。
CPG插件能被和谐吗
大神无处不在,理论上任何软件都有被PJ的可能行。然而,如果你编写了一个CPG插件,则可以大为放心,这种插件编译出来后,极难被PJ,代码不会暴露,即使被PJ也是汇编层面了,难度不是一般的高,普通人甚至是普通大神,是很难搞定的。
因此,如果你想编写一个自己的CPG插件拿来赚点额外收入,大胆去做就是了。只要你自己不把代码泄露出去,别人很难知道你的插件源码。
CPG插件如何开发
这正是本专栏文章要讲解的内容。本专栏将基于 VS2019、C++ 来讲解CPG插件的开发过程,带领读者从0到1,开发出自己的一个功能可用的CPG插件。没用过VS2019?不会C++语言?没关系,博主本人对C++也了解不深,极为头疼,这门语言的复杂程度,就连其发明者本人都不敢说自己完全精通(貌似作者本人说过,在此仅作参考,不代表C++发明者的意见)。
其实,学一个东西,没必要一定完全精通所有,只需要掌握能够被自己用来实现功能的那一部分特性就行了。要记住,所有编程语言,就只是一个工具,你把C++当成工具来看,就没那么多心理负担了。博主本人主要职业语言是 Java,对于 C++ 语言的了解只是很粗浅的程度,也并没有计划要去如何如何深入精通这么语言,头发没那么多,还是多享受健康生活吧!但是,基于我已有的编程语言经验,对于一些常见的概念比较清楚,能够融会贯通,所以能够简单使用它来编写CPG插件,遇到问题时,不妨多去搜索引擎查找资料,问题便迎刃而解了。
写在最后
本文是专栏第一篇文章,万事开头难,有了第一篇接下来继续发力,不断更新。
写一篇好文章不容易,如果你有任何问题,可以在本文留言或者WX联系博主提供帮助。