Premiere Pro & After Effects插件开发调试方法
在给Adobe Premiere Pro(PR)和Adobe After Effects(AE)插件开发时,对于实时调试插件有着很强的需求。除了业务需求外,单步调试插件还能够摸清楚Plugin和Host Application之间的交互过程。这篇文章记录下在Visual Studio中调试PR,AE插件的设置方法。首先需要去Adobe官方网站下载PR,AE的开发SDK。开发环境为Windows7 64bit, Visual Studio 2013, Adobe After Effects CC 2015 Windows SDK。
下载好的SDK包含所有的头文件和样例代码,Adobe官方已经为我们设置好了工程头文件,我们直接打开工程根目录下的BuildAll.sln即可。
我们选择IO工程作为示例说明,首先激活IO工程,作为编译工程首选项:
再打开工程属性,右键单击工程名称,选择工程属性:
首先在调试中设置运行命令,这里设置的是可执行程序,一般是宿主程序,如PR, AE的主程序:
这样,当我们在VS中F5调试运行时,会先启动这个宿主程序,然后宿主程序会去加载插件文件。那么插件文件的生成位置还要生成到PR,AE的插件目录下,才能让宿主程序加载:
这里设置的是插件文件的生成位置。点击应用之后即可单击F5调试运行了,可能会弹出下面的这个警告,这是因为AfterFX.exe文件没有调试符号文件,不要紧可以忽略(反正我们调试的又不是这个宿主程序,而是插件文件):
单击“是”继续,可以看到宿主程序正常启动了……
很好很好,一切都是按照设想中来的,过一会即可进入源文件断点处:
至此我们可以开心的F10、F11单步跟踪调试了。这里是以After Effects作为例子。实际上,对于Premiere Pro插件的调试也是一样的设置。开发起来还算是比较轻松,相比起Final Cut Pro下的插件开发要明朗多了。
- R包—iGraph
- 深度学习中 GPU 和显存分析
- 数据库SQL优化大总结1之- 百万级数据库优化方案
- Golang语言社区--LollipopGO开源项目搭建商城路由分发
- Shapes and line types for R
- Python基本常用包整理(data analysis and machine learning),附查询包版本语句
- 一次 PyTorch 的踩坑经历,以及如何避免梯度成为NaN
- 递归与伪递归区别,Python 实现递归与尾递归
- N元分词算法
- 基于典型相关分析的词向量
- 分享一波关于做 Kaggle 比赛,Jdata,天池的经验,看完我这篇就够了。
- system表空间不足的问题分析(r6笔记第66天)
- 挑战数据结构和算法面试题——最大间隔
- 一则orabbix报警的分析(r6笔记第65天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Redis持久化策略
- Redis二进制安全的原理
- 面试必备 Vue 知识点
- 数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试
- CPU有个禁区,内核权限也无法进入!
- 分布式 | DBLE 3.20.07.0 来啦!
- C语言三剑客之《C陷阱与缺陷》一书精华提炼
- Linux进程间通信(上)之管道、消息队列实践
- FPGA上电时序
- 更新Kubernetes APIServer证书
- R语言连续时间马尔科夫链模拟案例 Markov Chains
- 如何用R语言在机器学习中建立集成模型?
- 从零开始Kubernetes Operator
- TiKV源码解析系列文章(二十)Region Split源码解析
- scrapy爬虫框架和selenium的使用:对优惠券推荐网站数据LDA文本挖掘