Object 在inno安装程序中调用Com对象方法时发生访问冲突异常

Object 在inno安装程序中调用Com对象方法时发生访问冲突异常,object,com,automation,inno-setup,Object,Com,Automation,Inno Setup,我正在inno安装程序中使用基于IUnknown的COM技术来访问DLL的方法。我可以注册并正确获取对象,但当我调用方法inno时,显示了一个异常:访问模块mydll.dll中地址0xxxxx处的虚拟地址写入地址0xabcd。我的inno代码如下。请在这方面帮助我 hWnd := FindWindowByWindowName(VideoForm.Caption); Obj := CreateComObject(StringToGuid('{CC6C749C-FADD-4ee5-80CF-115

我正在inno安装程序中使用基于IUnknown的COM技术来访问DLL的方法。我可以注册并正确获取对象,但当我调用方法inno时,显示了一个异常:访问模块mydll.dll中地址0xxxxx处的虚拟地址写入地址0xabcd。我的inno代码如下。请在这方面帮助我

hWnd :=  FindWindowByWindowName(VideoForm.Caption);
Obj := CreateComObject(StringToGuid('{CC6C749C-FADD-4ee5-80CF-11536CCF2206}'));
Obj2:=IShellLinkW(Obj);

 Obj2.pluginStart(hWnd,'appVideo',VideoForm.Caption,'',0)
结束


提前谢谢你。

我不想在
IShellLinkW
上调用
pluginStart
方法。那么COM对象是什么呢?鉴于
IShellLinkW
是一个与快捷方式文件相关的shell接口,它不太可能有
pluginStart
方法。(更有可能的是,您尝试创建的对象不存在或未实现
IShellLinkW
)要解决此问题,您需要使用正确的接口,并且在尝试调用它之前应检查变量是否为null。我注意到您可能试图通过报告联系我,但这是一个错误的位置。您可以始终并至少包括您的接口是如何定义的,以及您为什么尝试强制转换到
IShellLinkW
并在其上调用
plugintart
方法。我最好的猜测是,您在Inno安装脚本中缺少接口声明,并且由于它继承自
IShellLinkW
,因此您尝试调用它的方法……我们可以尝试将您的接口转换为Inno安装Pascal脚本,但我们不知道,因此无法提供帮助。
IShellLinkW
接口肯定不知道pluginStart方法,因此尝试是错误的。