le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Nella programmazione C#,[global::System.Runtime.InteropServices.DllImport]
È un attributo (Attributo) utilizzato per contrassegnare il punto di ingresso di un codice non gestito (in genere una DLL o una libreria scritta in C o C++) in modo che il codice C# possa chiamarlo. Questa funzionalità fa parte del meccanismo P/Invoke (Platform Invocation Services), che consente al codice C# di interagire con il codice in altri linguaggi di programmazione.
Quando vedi questa funzionalità, in genere viene utilizzata per importare una funzione in una DLL in modo che possa essere chiamata nel codice C#. Per esempio:
- using System;
- using System.Runtime.InteropServices;
-
- class NativeMethods
- {
- // 导入DLL中的函数
- [DllImport("MyNativeLibrary.dll")]
- public static extern int MyNativeMethod(int a, int b);
- }
-
- class Program
- {
- static void Main()
- {
- // 调用DLL中的函数
- int result = NativeMethods.MyNativeMethod(1, 2);
- Console.WriteLine(result);
- }
- }
In questo esempio,MyNativeMethod
è uno dentroMyNativeLibrary.dll
funzione definita in , che viene importata nel codice C# in modo che possa essereMain
chiamato nel metodo.
DllImport
Le proprietà hanno diversi parametri, ma il parametro più comune è il nome della DLL (come nell'esempio sopra). Altri parametri possono includere la convenzione di chiamata (CallingConvention), CharSet (set di caratteri utilizzato per le stringhe), ecc.
Nota: quando si utilizza P/Invoke con una DLL, è necessario assicurarsi che la DLL sia compatibile con l'applicazione (ovvero, utilizzino lo stesso ambiente di runtime e la DLL sia compilata per il sistema operativo e l'architettura). Inoltre, poiché P/Invoke ignora il sistema di sicurezza dei tipi di C#, è necessario prestare particolare attenzione per garantire che i parametri passati e i valori restituiti corrispondano esattamente alla firma della funzione nella DLL.