最近,我開始研究Windows手機。我怎樣才能得到一個COM組件,它可以在Windows Phone 8項目上使用C#
我得到了一個用C語言編寫的項目,在我的windows phone 8 Solution中。我創建了一個動態鏈接庫(DLL)項目,並且可以成功構建它。其中,我使用運行時組件項目將DLL的方法提供給UI(C#)項目。在方法中,我有一些指針參數,我使用Intptr對象將一個byte []對象傳遞給運行時組件項目。不幸的是,這導致程序崩潰。
如何將指針參數傳遞給運行時組件項目或DLL項目?也許,有另一種方法可以使用[Dllimort]方法導入我的DLL文件?
任何幫助表示讚賞!
PS:我的解決方案的結構:
[動態鏈接庫項目(C++)] dll_method(無效*對位);
[運行時組件項目(C++)。rc_method(IntPtr的P)
{ dll_method((void*)p); }
[視窗電話8項目(C#)]。方法()
{ GCHandle g = GCHandle.Alloc(byte[], GCHandleType.Pinned); IntPtr p = g.AddrOfPinnedObject(); rc_method(p); }
讓我們來看看。你的意思是,如果我運行一個在Windows Phone 8的仿真器上調用Windows Phone運行時組件(C++)的App項目(C#),解決方案必須拋出異常? – ParadoxGao
你沒有任何意義。它可以在仿真器和設備上正常工作。 –
噢!我明白了,但我的意思是,從Windows Phone應用程序項目(C#)調用Windows Phone運行時組件(C++)運行良好,但如果Windows Phone運行時組件(C++)的方法包含一個參數類型是指針,當我調用方法時,應用程序崩潰了。 – ParadoxGao