Technology sharing

global ::System.Runtime.InteropServices.DllImport

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

In C# programmatio,[global::System.Runtime.InteropServices.DllImport] Est attributum (Attributum) quod ad ingressum notare adhibetur punctum codicis integri (plerumque DLL vel bibliotheca in C vel C ++ scriptum) ut C# codicem appellare possit. Haec pluma pertinet ad mechanismum P/Invoke (Invocatio Platform Services) quae sinit C# codicem in aliis programmandi linguis cum codice mutuam esse.

Hanc plumam cum videris, munus in DLL importare consuevit ut in C# codice dici possit. Exempli gratia:

  1. using System;
  2. using System.Runtime.InteropServices;
  3. class NativeMethods
  4. {
  5. // 导入DLL中的函数
  6. [DllImport("MyNativeLibrary.dll")]
  7. public static extern int MyNativeMethod(int a, int b);
  8. }
  9. class Program
  10. {
  11. static void Main()
  12. {
  13. // 调用DLL中的函数
  14. int result = NativeMethods.MyNativeMethod(1, 2);
  15. Console.WriteLine(result);
  16. }
  17. }

In hoc exemplo;MyNativeMethodest inMyNativeLibrary.dllmunus definitum , quod in C# codice importatur ut esse possitMaindicta in modum.

DllImport Plures parametri proprietates habent, sed frequentissimus parameter est nomen DLL (ut supra in exemplo). Aliae parametri conventionem vocant (CallingConvention), CharSet (character chordarum adhibitum) etc.

Nota: Cum usura P/Invoca cum DLL, curare debes ut DLL compatitur cum applicatione tua (i.e., eodem runtime ambitu utantur, et DLL ad systema operativa et architectura compilata). Accedit, quod P/Invocare praetermittit systema securitatis genus C#, extra curandum est ut parametri transeant et valores redditus exacte pareant functioni subscriptio in DLL.