728x90
Static extern
- 외부에서 구현된 정적 메서드를 선언하는 데 사용된다. 이 키워드 조합은 주로 플랫폼 호출을 통해 네이티브 코드(예: C/C++ 라이브러리의 함수)를 호출할 때 사용된다.
- extern 키워드는 메서드의 구현이 외부에 있다는 것을 나타내며, static 키워드는 해당 메서드가 클래스의 인스턴스와 독립적임을 의미한다.
- 보통 DLL(동적 링크 라이브러리)에 있는 함수를 호출하기 위해 사용된다. DllImport 속성을 사용하여 해당 함수가 포함된 DLL을 지정해야 한다.
중요 사항
- 플랫폼 호출(P/Invoke)
- extern 키워드는 메서드의 구현이 관리되지 않는 코드(네이티브 코드) 에서 제공됨을 의미한다.
- P/Invoke는 C# 코드에서 네이티브 DLL의 함수를 호출할 때 사용된다.
- 메서드의 반환값과 매개변수
- 네이티브 함수의 반환값과 매개변수를 정확하게 일치시키는 것이 중요하다.
- 잘못된 선언은 런타임 오류를 초래할 수 있다.
- 메모리 관리
- 네이티브 코드와 상호 작용할 때는 메모리 관리에 주의해야 한다. 잘못된 포인터 사용 또는 메모리 해제는 충돌을 일으킬 수 있다.
- 플랫폼 종속성
- P/Invoke는 주로 Windows 플랫폼에서 사용되며, 플랫폼 종속적인 코드가 될 수 있다. 다른 운영체제에서 사용할 때는 주의해야 한다.
728x90
'언어 > C#' 카테고리의 다른 글
bool 함수<TEnum>(this TEnum, params TEnum[]) (0) | 2024.08.06 |
---|---|
MethodImpl (0) | 2024.08.06 |
Environment.ProcessorCount (0) | 2024.08.06 |
HashSet<T> (0) | 2024.08.05 |
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) (0) | 2024.08.05 |