Memanggil Pustaka C# daripada Native C Menggunakan C /CLI dan IJW
Dalam persekitaran bahasa campuran, pembangun sering menghadapi keperluan untuk merapatkan jurang antara C# terurus dan kod C tidak terurus. Walaupun objek PInvoke dan COM menawarkan penyelesaian, C /CLI dengan IJW menyediakan pendekatan yang lebih bersih dan lancar.
Kelebihan Menggunakan C /CLI dan IJW
-
Antara Muka Lebih Mudah: C /CLR dan IJW menyediakan antara muka yang lebih mudah difahami dan digunakan berbanding kaedah lain.
-
Keselamatan Jenis: C /CLR memastikan keselamatan jenis, mencegah ralat yang boleh berlaku apabila merentasi sempadan bahasa.
-
Kompilasi Kod Asli: Kod C yang tidak terurus boleh berinteraksi dengan perpustakaan C# terurus melalui pembungkus yang disusun, meningkatkan prestasi dan kebolehselenggaraan kod.
Mencipta Pustaka Pembalut dengan IJW
-
Buat Pustaka C /CLR: Cipta projek perpustakaan baharu yang menyasarkan Rangka Kerja .NET. Tetapkan pilihan bahasa kepada C /CLI.
-
Tambah rujukan IJW: Tambah rujukan pada perhimpunan Microsoft.VisualC.ManagedCrt.dll dan System.ValueTuple.dll.
- Tentukan Antara Muka Asli: Cipta fail pengepala (.h) yang mentakrifkan antara muka asli untuk berinteraksi dengan pustaka C#.
-
Laksanakan Pembungkus: Tulis kod dalam .cpp fail, menggunakan IJW untuk memanggil fungsi C# daripada C asli .
Contoh Kod Pembungkus
// Native.h
void NativeWrapMethod();
// Native.cpp
#using <mscorlib.dll>
#using <MyNet.dll>
using namespace MyNetNameSpace;
void NativeWrapMethod()
{
MyNetNameSpace::MyManagedClass::Method(); // static method
}
Mengintegrasikan Kod Asli
-
Sertakan Fail Pengepala: Sertakan fail Native.h dalam kod C yang tidak diurus jika diperlukan.
-
Fungsi Native Call: Panggil fungsi NativeWrapMethod() daripada kod C yang tidak terurus.
Kesimpulan
Menggunakan C /CLI dengan IJW menyediakan cara yang teguh dan cekap untuk merapatkan jurang antara kod C tidak terurus dan C# terurus. Dengan mencipta pustaka pembalut, anda boleh mendedahkan pustaka C# kepada kod tidak terurus dengan mudah, memudahkan kesalingoperasian dan memastikan keselamatan kod.
Atas ialah kandungan terperinci Bagaimanakah C /CLI & IJW Boleh Menyambungkan Pustaka Native C dan C# Terurus dengan lancar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn