我一直在尝试编写与Photoshop交互的代码,既添加了COM引用,又使用了后期绑定。后来我才意识到,这些代码确实可以工作,但无法与64位版本的Photoshop一起使用。
我在64位Photoshop中遇到的异常如下:
COMException was unhandled
由于以下错误,检索具有CLSID {D9389EDE-AEF8-4092-9377-075E94B7CB9A} 的组件的COM类工厂失败:80080005 服务器执行失败(HRESULT Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
我的应用程序是否能够与64位版本的Photoshop进行通信?或者它只能限于与32位版本进行通信吗?
我在寻找解决方案时发现了这个,但我不知道如何在COM引用或后期绑定中使用CLSCTX_ACTIVATE_64_BIT_SERVER
标志,也许它是解决方案。
异常出现在此处:
Type photoshopType = Type.GetTypeFromProgID("Photoshop.Application");
if (photoshopType != null)
{
object photoshop = Activator.CreateInstance(photoshopType);