我需要從x64代碼訪問x86 dll(第三方,無法訪問源代碼)。我的研究表明把DLL放在一個COM +包裝中,並作爲OOP服務訪問是最合適的方法。從x64代碼訪問x86 COM +服務器
到目前爲止這麼好。
因此,遵循「NET 2.0互操作性食譜 - 問題解決方案方法」(儘管我運行VS2010和.NET4)的指導。我構建了一個概念驗證服務(DLL)和測試客戶端(EXE),作爲服務器應用程序運行的服務是OOP。他們都工作,並通過組件服務禁用該服務殺死它,所以它似乎使用正確的路線。
這全在x86中。
當我將客戶端更改爲x64時,我得到一個'BadImageFormatException',我期望如果它只是加載x86 dll,但應該運行OOP。
我知道我錯過了一些東西,它可能很明顯。
其他注意事項:
1)我跑regsvcs生成後,和regsvcs/U預生成 2)DLL問題被卡住的是,我的主要的基本代碼必須是64
它們都不是任何CPU,服務器是x86,客戶端是x64。我不希望客戶端在x86中運行,這會破壞使用COM +的全部目的,因爲我可以在代碼中使用dll。 – Oybon 2012-07-11 10:22:55