내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
C# 프로그래밍에서는[global::System.Runtime.InteropServices.DllImport]
C# 코드가 호출할 수 있도록 관리되지 않는 코드(일반적으로 C 또는 C++로 작성된 DLL 또는 라이브러리)의 진입점을 표시하는 데 사용되는 특성입니다. 이 기능은 C# 코드가 다른 프로그래밍 언어의 코드와 상호 작용할 수 있도록 하는 P/Invoke(플랫폼 호출 서비스) 메커니즘의 일부입니다.
이 기능은 일반적으로 C# 코드에서 호출할 수 있도록 DLL에서 함수를 가져오는 데 사용됩니다. 예를 들어:
- 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);
- }
- }
이 예에서는MyNativeMethod
에 하나입니다MyNativeLibrary.dll
에 정의된 함수는 C# 코드로 가져오기되어Main
메서드에서 호출됩니다.
DllImport
속성에는 여러 매개변수가 있지만 가장 일반적인 매개변수는 DLL 이름입니다(위 예 참조). 다른 매개변수에는 호출 규칙(CallingConvention), CharSet(문자열에 사용되는 문자 집합) 등이 포함될 수 있습니다.
참고: DLL과 함께 P/Invoke를 사용하는 경우 DLL이 애플리케이션과 호환되는지 확인해야 합니다(즉, 동일한 런타임 환경을 사용하고 DLL이 운영 체제 및 아키텍처에 맞게 컴파일됨). 또한 P/Invoke는 C#의 형식 안전 시스템을 우회하므로 전달된 매개 변수와 반환된 값이 DLL의 함수 서명과 정확히 일치하는지 확인하기 위해 특별한 주의를 기울여야 합니다.