2013-04-09 18 views

cevap

13

MyTest.so adlı bir paylaşılan kütüphanemiz olduğunu ve Xamarin.Android projesinde kullanmak istediğimizi varsayalım. MyTest.so, MyTest_GetValue();

int işlevinden oluşur;

Şimdi, bu işlevi Xamarin.Android projesinde kullanmamız gerekiyor. İşte başarılı olmak için gereken adımlar:

Adım 1: Lib ve alt klasör armeabi adı verilen Xamarin.Android projesinin içinde yeni bir klasör oluşturun. Belirtildiği gibi armeabi klasörünün içinde kullanılmak üzere .so kütüphanesini kopyaladım Kopyala: library.so'nun özelliklerini (içe aktarılmış kütüphane) "AndroidNativeLibrary" ve "Her Zaman Kopyala" olarak kopyalamak için Kopyala.

Adım 3: (Xamarin.Android Sınıfı örneğin çalışma: MainActivity.cs)

  • tarafından ad InteropServices Dahil “kullanarak System.Runtime.InteropServices;”

  • kullanın standart Dllımport projedeki yerli kitaplığı aşağıdaki gibi içe aktarma: [DllImport ("MyTest.so")] public extern statik int MyTest_GetValue(); // tam olarak Functtion Name ile, .so Lib. & Params yazın.

Adım 4: Uygulamada yukarıdaki (MyTest_GetValue()) işlevini tüketin. Örnek için

:

int değer = MyTest_GetValue();

Console.Writeline (value.ToString());

Görev Tamamlandı!: D

+0

Bir [out] bağımsız değişkeniyle örnek bir işlev gösterebilir misiniz? bool MyTest_GetValue (string * retVal) gibi; Teşekkürler – hrz

+0

Düşünebildiğim kadarıyla, [çıkış] argümanlarını kullanarak farklı olmamalı. 1 ve 2 numaralı adımları gerçekleştirin, sonra [out] argümanlarıyla işlev içeren 3. adımı ve son olarak bu işlevi tüketmek için 4. adımın düzgün çalışması gerekir. Not: Xamarin 2013'ten beri çok değişti (bu soru). –

İlgili konular