[英]Use Universal Windows C# class library from Native C++
我有帶有UI組件的通用Windows C#類庫。 我想知道我是否可以使用Native C ++。
我試圖使用regasm將類庫dll轉換為tlb文件,但它會拋出錯誤
錯誤:程序集不能是Windows運行時程序集。
我還嘗試為C#類庫創建一個WinRT / WRL包裝器,並嘗試從Native C ++加載它。 但是當我為包裝器DLL調用LoadLibrary
時,它會返回“nullptr”,錯誤為126,即使所有dll和可執行文件都在同一目錄中。
那么如何使用Native C ++的通用Windows類庫呢? 可能嗎?
您必須將類庫公開為COM組件並從本機代碼調用它,這是最方便的解決方案。 您將無法從本機C ++調用Universal Windows C#類庫,因為它將無法識別,正如您在問題中提到的,它將導致nullptr
異常。
有趣的是, 你可以做相反的事情!
您可以創建一個本機C ++庫並在Universal Windows C#平台中調用它 - 在MSDN中有關於此實踐的完整帖子:
有趣的是,在我看來,你可以做一件事,但不是相反,但仍然,很高興知道至少有一種方式實際上是可能的。
我不確定“方便”這個詞我會用來描述將本機C ++暴露為COM組件。
你應該看看C ++ / WinRT
https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis 。
它似乎取代了C ++ / CX,這是微軟允許C ++用於構建和使用WinRT組件的初始方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.