2015-11-08 303 views
0

我有一個C++庫與C++/CX包裝。我可以引用C#桌面項目中的包裝並使用它嗎?C#桌面應用程序可以使用UWP組件嗎?

我試着用通常的方法添加引用。我可以選擇項目並添加參考,但它有一個黃色的感嘆號。智能感知工作,它編譯好,但是當我運行它,我得到一個TypeLoadException表明無法找到Windows運行時類型 - 即使當我手動複製DLL在那裏。

some articles解釋如何設置與Windows 8項目類似的東西,但我沒有得到Windows標籤顯示爲像我的項目。

+0

這是一個不同的情況,採用從組件原生的Win32代碼,而我想從CLR中使用它。 –

+1

Win32與CLR不會影響這一點。自定義Windows運行時組件僅在Windows運行時應用程序中受支持,而不是在桌面應用程序中支持,原因是拉曼在其他線程中解釋的原因 –

+0

這樣就明確了。謝謝。 –

回答

0

正如Rob已經評論的那樣,無法從桌面.NET應用程序使用定製的winrt組件(至少現在沒有辦法做到這一點......)。

但是,你可以直接在.NET應用程序通過的PInvoke或C++/CLI中使用C++(不是C++/CX!)

看到這個: http://www.codeproject.com/Articles/403285/P-Invoke-Tutorial-Basics-Part

+0

我相信Rob的評論指的是不同的設置(Win32 vs CLR)。 P/Invoke是一個很棒的功能,但它只允許使用通過C API公開的C++代碼。 C++/CLI聽起來很不錯,在桌面版和Windows Runtime .NET應用程序中是否支持? –

相關問題