2011-08-03 127 views
4

我有一个我写的小应用程序,导入iTunes和MediaMonkey COM接口。该应用程序是开发和建立在我的笔记本电脑与X64,但运行在我的媒体PC是x86。它在x64机器上运行得非常好,但是当我尝试在x86介质PC上运行它时,它无法加载。如果我禁用MediaMonkey部件,它可以在iTunes中正常工作,但是我无法使其与MediaMonkey COM启用。x86与COM互操作编译在x64

该应用程序是为.NET Framework 4.0和x86专门编译的。

任何想法我可能做错了什么?

+0

这里的问题的列表: 1. COM 2. COM 3. COM –

+1

相信我,我不会使用COM来,如果我没得..但是这是他们唯一的接口:( –

+0

我知道我一直在那里....我感到你的痛苦 –

回答

3

继长篇评论谈话,这是我的建议,作为一个真正的答案:

尝试重新安装MM你的媒体PC上,使用“以管理员身份运行”进行安装。在MM论坛中有一些有点过时的讨论 - Installer doesn't install COM Object properly。如果MM COM服务器没有正确注册,它将不可用。

此外,我不知道这是否与这种情况有关,但FWIW - 可能没有DLL注册。 ActiveX EXE可以使用默认的编码器,而不需要代理存根,可以是registered directly

+0

正确,没有找到DLL。 Visual Studio似乎只是为我生成一个interop DLL。另外,我实际上不必重新安装...我刚刚浏览到MM文件夹,右键单击EXE并选择以管理员身份运行。我让它打开,关闭它,然后正常重新打开。这样做后,我的应用程序就像一个魅力。再次感谢!这让我疯狂...... –

+0

@Adam,我不知道MM是如何工作的,但我想它在运行时将自己注册为COM服务器。这仅仅意味着创建一些注册表项。按照惯例,它是通过调用DLLRegisterServer完成的,或者当EXE识别出使用了-RegServer开关时,但是像平常一样运行EXE时可以轻松完成。所以从COM的角度来看,它仍然算是安装... :)无论如何,我很高兴为你解决这个问题。 – eran