Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah C /CLI & IJW Boleh Menyambungkan Pustaka Native C dan C# Terurus dengan lancar?

Bagaimanakah C /CLI & IJW Boleh Menyambungkan Pustaka Native C dan C# Terurus dengan lancar?

DDD
DDDasal
2024-11-07 13:23:03869semak imbas

How Can C  /CLI & IJW Seamlessly Connect Native C   and Managed C# Libraries?

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

  1. Buat Pustaka C /CLR: Cipta projek perpustakaan baharu yang menyasarkan Rangka Kerja .NET. Tetapkan pilihan bahasa kepada C /CLI.
  2. Tambah rujukan IJW: Tambah rujukan pada perhimpunan Microsoft.VisualC.ManagedCrt.dll dan System.ValueTuple.dll.
  3. Tentukan Antara Muka Asli: Cipta fail pengepala (.h) yang mentakrifkan antara muka asli untuk berinteraksi dengan pustaka C#.
  4. 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

  1. Sertakan Fail Pengepala: Sertakan fail Native.h dalam kod C yang tidak diurus jika diperlukan.
  2. 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