簡體   English   中英

如何使用C ++非托管庫在Visual Studio 2017中為Xamarin.Forms設置項目?

[英]How to setup project in Visual Studio 2017 for Xamarin.Forms with C++ unmanaged library?

我的項目針對Android和iOS平台。

我需要在C ++庫周圍創建一個本機C ++庫(可移植),一個C#包裝器庫(dll),最后使用這些庫創建一個Xamarin.Forms演示應用程序。 本機和包裝庫是可交付的,演示應用程序用於概念驗證。

我完全安裝了Visual Studio 2017,但似乎找不到正確設置所有引用的項目類型的正確組合。

我應該如何在Visual Studio 2017中進行設置?

我不介意建立眾多項目。 我主要擔心的是盡可能多地共享代碼。

為每個平台編譯C ++庫(例如clang / gcc)。 如果你打算在App Store推送它,那么在Android和mylib.dylib(或mylib.framework)上提供mylib.so。 您的C ++應該使用extern C來公開API。 這部分與VS模板/項目無關,您只需要正確的二進制文件。

創建.NET標准2.0庫項目。 使用<TargetFrameworks>MonoAndroid8.1;Xamarin.iOS10;netstandard2.0</TargetFrameworks>使用多目標<TargetFrameworks>MonoAndroid8.1;Xamarin.iOS10;netstandard2.0</TargetFrameworks> 如果您需要有關設置的示例,請在GitHub上查找跨平台項目。 這里的C#代碼將使用P / Invoke調用C ++並處理編組以公開C#友好的API。 再次,在GitHub上查看流行庫的包裝器。

然后,您需要創建一個包含3個項目的Xamarin.Forms項目:

  • 1共享程序集包含所有共享代碼和視圖,並引用您的.NET標准庫項目。
  • 1 iOS項目,它引用上面的共享Xamarin.Forms項目,並具有包含C ++代碼的dylib /框架的本機引用。
  • 1個Android項目,它引用了上面的共享Xamarin.Forms項目,並且包含了包含C ++代碼的.so二進制文件的本機引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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