我有一個我寫的小應用程序,導入iTunes和MediaMonkey COM接口。該應用程序是開發和建立在我的筆記本電腦與X64,但運行在我的媒體PC是x86。它在x64機器上運行得非常好,但是當我嘗試在x86介質PC上運行它時,它無法加載。如果我禁用MediaMonkey部件,它可以在iTunes中正常工作,但是我無法使其與MediaMonkey COM啓用。x86與COM互操作編譯在x64
該應用程序是爲.NET Framework 4.0和x86專門編譯的。
任何想法我可能做錯了什麼?
我有一個我寫的小應用程序,導入iTunes和MediaMonkey COM接口。該應用程序是開發和建立在我的筆記本電腦與X64,但運行在我的媒體PC是x86。它在x64機器上運行得非常好,但是當我嘗試在x86介質PC上運行它時,它無法加載。如果我禁用MediaMonkey部件,它可以在iTunes中正常工作,但是我無法使其與MediaMonkey COM啓用。x86與COM互操作編譯在x64
該應用程序是爲.NET Framework 4.0和x86專門編譯的。
任何想法我可能做錯了什麼?
繼長篇評論談話,這是我的建議,作爲一個真正的答案:
嘗試重新安裝MM你的媒體PC上,使用「以管理員身份運行」進行安裝。在MM論壇中有一些有點過時的討論 - Installer doesn't install COM Object properly。如果MM COM服務器沒有正確註冊,它將不可用。
此外,我不知道這是否與這種情況有關,但FWIW - 可能沒有DLL註冊。 ActiveX EXE可以使用默認的編碼器,而不需要代理存根,可以是registered directly。
正確,沒有找到DLL。 Visual Studio似乎只是爲我生成一個interop DLL。另外,我實際上不必重新安裝...我剛剛瀏覽到MM文件夾,右鍵單擊EXE並選擇以管理員身份運行。我讓它打開,關閉它,然後正常重新打開。這樣做後,我的應用程序就像一個魅力。再次感謝!這讓我瘋狂...... –
@Adam,我不知道MM是如何工作的,但我想它在運行時將自己註冊爲COM服務器。這僅僅意味着創建一些註冊表項。按照慣例,它是通過調用DLLRegisterServer完成的,或者當EXE識別出使用了-RegServer開關時,但是像平常一樣運行EXE時可以輕鬆完成。所以從COM的角度來看,它仍然算是安裝... :)無論如何,我很高興爲你解決這個問題。 – eran
這裏的問題的列表: 1. COM 2. COM 3. COM –
相信我,我不會使用COM來,如果我沒得..但是這是他們唯一的接口:( –
我知道我一直在那裏....我感到你的痛苦 –