dll文件打开软件(电脑dll文件打开方式)

前提

本文是C++开发高级方向,想学DLL和插件架构的朋友,对PS操作有思想的朋友,适合深度阅读本文,普通编程爱好者加深下程序入口形式的理解也好。谢谢关注。

1、开发前的准备:

首先去Adobe官方网站下载相应的开发包,我本地安装的Photoshop CS5,所以安装的这个相应版本的。

http://www.adobe.com/devnet/photoshop/sdk.html
这里我选择的是Windows平台。

VC++开发Photoshop插件DLL

2、文件解压详解:

下载的zip,可以随意解压到你的本地目录,然后里面有个pluginsdk插件sdk目录,看到里面有3个子文件夹:

VC++开发Photoshop插件DLL

documentation:英文帮助文档;
photoshopapi:API库,开发需要调用到的库;
samplecode:样例程序,里面的例子可以随意修改或参考作为你开发的模版。

3、打开samplecode,可以看到各种分类文件夹,对应不同的插件功能

其中Output文件夹是用来当作编译输出目录的,入门首先需要学习两个插件:getter 和 listener,他们在samplecodeautomation目录下。

4、getter插件

打开samplecodeautomationgetterwingetter.sln,编译生成插件,放到PS插件目录下试下(你也可以将Output里插件目录设置为PS的增效工具目录),运行PS->文件->自动->getter,然后你会发现桌面上多了个getter.log,该插件的主要目的就是把你当前在PS里打开的文件、图层信息及函数调用方法输出到log里去,所以当你不知道如何获取某个信息时,查找getter.log里对应的函数。

5、listener插件:

该插件的作用是监听PS里的大部分操作和事件的函数调用过程,并输出到桌面上的listerner.log里,比如你要复制剪切某一图层,而且不知道如何用函数实现它的时候,先使用listener插件,打开PS对图层进行一次复制剪切操作,然后打开listener.log,代码就在那。

6、其它的一些插件

可以根据英文名大概理解其意思。

7、插件类型

Photoshop支持以下四种插件:
在Windows中,插件文件必须放置在特定的路径中(如photoshopplugins)。
Acquire modules(扩展名8ba)实现在一个新窗口中打开一幅图像,常用于扫描仪或视频捕捉卡接口,读取压缩格式或系统不支持的文件,通过Acquire子菜单调用。
Export modules(扩展名.8be)实现图像输出,常用于控制特殊打印机或以非标准压缩格式进行文件输出,通过Export子菜单调用。
Format modules(扩展名.8bi)实现标准读写系统不支持的特殊文件格式,出现在Open…、Save As…等对话框的格式栏中。
Filter modules(扩展名.8bf)实施对当前图像中的选定区域进行修改、润色。这是大家最熟悉的部分,许多图像效果便是出自这些模块,通过Filter菜单调用。

8、框架:

每个插件里都有个AutoPluginMain,就是DLL入口,所谓的插件其实就是个DLL,找几个插件,在AutoPluginMain里加个断点,跟踪一下,看看这些插件都干了些什么。
有些插件自带弹框界面,可以用资源管理器编辑,用DialogBoxParam创建你自定义的界面,参考listener里的DoUI函数,makenew里的DoAbout等。
几乎所有的API函数都会返回一个SPErr,表示函数调用正确与否。
所有的操作都要有个PIActionDescriptor,可以创建(sPSActionDescriptor->make())或获取(PIUGetInfo())。sPSActionDescriptor是一个接口指针,可以从中获取PIActionDescriptor信息(下面简称desc)以及执行一些操作。
sPSActionReference是一个接口指针,用来封装一些信息到desc中,(下面简称refer)。
sPSActionControl是一个接口指针,用来Play各种事件。
如果要获取信息,可以使用PIUGetInfo系列函数(在PIUGet.h中定义)。

9、例子插件Dissolve:

这里挑选了SDK中的一个例子插件Dissolve。
DLLExport MACPASCAL void PluginMain(const int16 selector,
FilterRecordPtr filterRecord,
intptr_t * data,
int16 * result)
{
gFilterRecord = filterRecord;
gDataHandle = data;
gResult = result;

if (selector == filterSelectorAbout)
{
sSPBasic = ((AboutRecord*)gFilterRecord)->sSPBasic;
}
else
{
sSPBasic = gFilterRecord->sSPBasic;

if (gFilterRecord->bigDocumentData != NULL)
gFilterRecord->bigDocumentData->PluginUsing32BitCoordinates = true;
}

switch (selector)
{
case filterSelectorAbout:
DoAbout();
break;
case filterSelectorParameters:
DoParameters();
break;
case filterSelectorPrepare:
DoPrepare();
break;
case filterSelectorStart:
DoStart();
break;
case filterSelectorContinue:
DoContinue();
break;
case filterSelectorFinish:
DoFinish();
break;
default:
break;
}
if (selector != filterSelectorAbout)
UnlockHandles();
}
这里展示的是部分代码,插件的使用如下流程:

  1. 找到解压后的文件,我这里用VS2010打开Dissolve.sln文件,并运行

VC++开发Photoshop插件DLL

运行结束:

VC++开发Photoshop插件DLL

虽然成功生成了文件,可能会遇到找不到生成文件的问题。当时这个问题就出现了,不过不用担心生成的.dll文件无法找的的原因是因为插件本身是有固定的扩展名,打开工程属性页可以看到输出文件的扩展名为.8bf,这样问题就好解决了,找到路径下的Dissolve.8bf文件,复制到Photoshop安装目录下的Plug-insFile Formats文件夹,重新启动Photoshop,会发现插件Dissolve已经加入到Photoshop中,可以愉快的使用了。这只是一个例子,其他很多的PS插件等着你的使用。

VC++开发Photoshop插件DLLVC++开发Photoshop插件DLLw

版权声明:本文图片和内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送联系客服 举报,一经查实,本站将立刻删除,请注明出处:https://www.4kpp.com/8262.html

(0)
漫空客漫空客
上一篇 2023年4月23日
下一篇 2023年4月23日

相关推荐

  • 龙门阵够得摆(龙门阵够得摆 音乐课)

    今天小编给各位分享龙门阵够得摆(龙门阵够得摆 音乐课),如果能碰巧解决你现在面临的问题,别忘了关注小站,我们一起开始吧! 摆龙门阵是什么意思? 龙门阵本义指古代军事中的一种阵法,为…

    投稿 2023年4月23日
    1360
  • 火麻仁的功效与作用及食用方法(火麻仁的功效与作用及食用方法壮阳)

    今天给大家分享一下火麻仁的功效作用和吃* * *(火麻仁的功效作用和吃* * *壮阳)的问题。以下是这个问题的总结。让我们来看看。 火麻仁的功效、作用及食用 火麻仁的功效与作用 火…

    投稿 2023年4月23日
    1150
  • 网赚粉到底怎么引流:福建三男子为赌博网站做广告 一个月赚200多万

    中新网广州7月4日电 (索有为国外调查网赚怎么解决ip问题 陈云飞)四名男子建立网站后定期更新优化,通过提高网站的点击率来吸引广告客户,专门为赌博网站投放广告及建立链接,短短一个月…

    投稿 2023年4月23日
    1010
  • 淘宝规则中规定的违规行为有几大类(淘宝规则中规定的违规行为有几大类型)

    不少卖家在经营店铺的时候,由于不了解平台的一些规则,而导致店铺违规被进行处罚,所以商家需要了解清楚淘宝的一些规则,下面我们来看看淘宝店铺什么是B类违规? 一、B类违规行为具体内容:…

    投稿 2023年4月23日
    1120
  • 黄衫女子(金庸解释黄衫女子)

    黄衫女子(金庸解释黄衫女子) 主要在神雕侠侣小说中寻找答案,那些说耶律齐背叛,郭芙改嫁杨过的都也是猜想,不在本文考虑范围之内。 以前写过文章详细解释过耶律齐不会背叛,郭芙也不会改嫁…

    2023年4月23日
    1.3K0
  • 恋爱行为学(恋爱行为学追女生的技巧)

    今天给大家分享的是恋爱行为的知识,也会讲解恋爱行为中追女生的技巧。如果你碰巧解决了你现在面临的问题,别忘了关注这个网站,现在就开始! 什么是爱的行为? 恋爱行为 恋爱行为学是研究男…

    投稿 2023年4月24日
    1130
  • 社保卡能像普通银行卡一样存钱、取钱吗?为什么?

    社保卡正在成为“一卡通”多功能服务,对于每个人来说都应该好好的认识你手中的社保卡。甚至成为了个人身份的象征。2020年1月26日,人力资源和社会保障部发布数据,截至2020年末,中…

    投稿 2023年4月22日
    2650
  • 什么是泡沫经济

    今天,我想和大家分享一个关于什么是泡沫经济的问题。以下是这个问题的总结。让我们来看看。 什么是泡沫经济? “泡沫经济”这个词可能并不陌生,但它意味着什么呢?泡沫经济是指资产价格膨胀…

    投稿 2023年4月24日
    1140
  • 手部美白(手部美白小妙招)

    今天给大家分享一下手部美白的问题(手部美白小妙招)。以下是这个问题的总结。让我们来看看。     手部美白 我们平时很注重面部和身体的美白,却往往忽略了手部的美白。其实手部的皮肤也…

    投稿 2023年4月23日
    1060
  • 什么是学前教育(什么是学前教育概念)

    今天小编给各位分享什么是学前教育(什么是学前教育概念),如果能碰巧解决你现在面临的问题,别忘了关注小站,我们一起开始吧! 学前教育主要讲什么? 第二,知道学前教育的教育目标。 《幼…

    投稿 2023年4月23日
    1030

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注