当前位置:首页 > 生活百科

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

栏目:生活百科日期:2025-04-28浏览:0

前提

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

1、开发前的准备:

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

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

2、文件解压详解:

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

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();
}
这里展示的是部分代码,插件的使用如下流程:

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

运行结束:

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

“dll文件打开软件(电脑dll文件打开方式)” 的相关文章

创业企业家有哪些,有什么社会影响

白手起家的亿万富翁并不都是马克·扎克伯格或杰夫·贝佐斯——那些通过高度创新、快速发展的技术来创造价值的人。实际上,绝大多数白手起家的亿万富豪往往是连续创业者,其...

ui图标制作步骤(ui设计常用免费素材网站)

对于一个新手初入学习和职场最可能做的就是常见的APP的界面设计和图标设计、切图等工作。而目前由于智能终端的分辨太多,大家对于界面设计规范很混乱,也不太能记住,今...

制冷风扇哪个牌子好(制冷效果最好风扇使用体验)

走完春冬的寒冷,迎头而来的就是夏秋的炎热。特别是在南方,这个热是让人无处可逃啊,外面热走到屋内发现里面更热,最后还是从口中蹦出一句:这鬼天气,什么时候是个头啊。...

win10如何连接打印机设备(驱动程序的操作步骤)

日常工作中离不开打印机,但不可能每台电脑都配置一台单独的打印机,所以,就需要将打印机连接在局域网内,供公司的所有电脑使用。那么,win10下如何设置打印机共享呢...

sd卡格式化怎么恢复,修复sd卡数据方法

手机内存卡不小心格式化了怎么办?手机内存卡数据丢失了,怎么恢复?手机内存卡数据恢复的方法?随着手机研发技术的不断提高,现如今的手机功能越来越强大,手机在人们生活...

u盘数据恢复软件哪个好(u盘数据丢失恢复方法)

U盘是一件存储方便,使用简单的便携式存储设备,所以很多用户都喜欢用U盘存储自己的重要文件,如果U盘的文件坏了或目录损坏就糟糕了,U盘打不开了,重要文件还在里面呢...

什么网游好玩不花钱而且还人多(不氪金的网络游戏排行榜

随着电脑硬件性能的飞速成长,操作系统和软件也变的越来越臃肿起来,同样大型单击游戏和网络游戏也变的非常吃电脑配置,如果想在2K或者4K下流畅运行,CPU和GPU的...

互联网投融资平台有哪些(互联网平台排名)

互联网金融(ITFIN)就是指传统的金融机构与互联网企业运用互联网技术和信息通信技术完成资金融通、支付、投资和信息中介服务的新式金融业务模式。互联网金融并不是互...

免费云服务器试用一年,教你最简单的开通步骤

免费云服务器试用一年的哪种好?用户在选择云服务器的时候,国内服务商为了扩大产品的宣传和销量,会提供一些免费主机以供试用,但通常都是有时间限制的,一般是试用几天,...

u盘加密工具排名(车载音乐u盘制作方法)

怎么给U盘加密?如何使用bitlocker给U盘设置密码锁?本文就给大家分享在Win7系统上使用bitlocker给U盘设置密码锁的方法。解决方法:1、选择加锁...