2011-01-12 44 views
1

我想爲Windows Mobile 5創建一個.NET CF應用程序。在此應用程序中,我想要加載基於ProgID(或CLSID)的COM對象。如何在智能設備項目中加載COM對象?

  1. 我該如何加載這個COM對象,使得我可以像訪問它的方法那樣只是另一個.NET對象?
  2. 此外:如何在Visual Studio中以這種方式配置項目/解決方案,即在調試應用程序時,我確信所加載的COM對象是安裝在設備上的COM對象,而不是一個可以通過調試器訪問?

我已經嘗試添加.ocx文件作爲參考,但我得到一個錯誤,並且我不確定'問題2'。我也嘗試使用加載COM對象

Type type = Type.GetTypeFromProgID("my.prog.id") 
MyObject myObject = (MyObject)Activator.CreateInstance(type) 

...但這會導致第二行發生InvalidCastException。


編輯:爲了記錄:我的工作在64位的Windows 7機器上,不知道這複雜的事情......

回答

1

你需要一個運行時可調用包裝(RCW)。基本知識請參閱this MSDN article。對於更復雜的東西,如ActiveX控件,請參見this article

+0

我已經通過添加對.tlb文件的引用來創建RCW。它似乎也能夠實例化一個對象。但是,在該對象上調用方法會導致COMException(0x8000ffff)。我知道這樣一個事實,即當從另一個應用程序調用COM對象本身時工作正常,但是,這是一個本機應用程序,我沒有源代碼。 – Daan 2011-01-12 14:05:39

相關問題