簡體   English   中英

使用Native C ++中的通用Windows C#類庫

[英]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中有關於此實踐的完整帖子:

在通用Windows平台應用程序中使用現有C ++代碼

有趣的是,在我看來,你可以做一件事,但不是相反,但仍然,很高興知道至少有一種方式實際上是可能的。

我不確定“方便”這個詞我會用來描述將本機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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM