비 Windows 플랫폼에서 A/W 접미사 검색 안 함
.NET 런타임은 비 Windows 플랫폼에서 P/Invoke를 검색하는 동안 함수 내보내기 이름에 A
또는 W
접미사를 더 이상 추가하지 않습니다.
도입된 버전
5.0
변경 내용 설명
Windows에는 A
또는 W
접미사를 각각 Windows 코드 페이지 및 유니코드 버전에 해당하는 Windows SDK 함수 이름에 추가하는 규칙이 있습니다.
이전 버전의 .NET에서는 CoreCLR 및 Mono 런타임 둘 다 ‘모든 플랫폼에서’ P/Invokes 내보내기 검색 중에 A
또는 W
접미사를 내보내기 이름에 추가합니다.
.NET 5 이상 버전에서는 ‘Windows에서만’ 내보내기 검색 중에 A
또는 W
접미사를 내보내기 이름에 추가합니다. Unix 플랫폼에서 접미사는 추가되지 않습니다. Windows 플랫폼에서 두 런타임의 의미 체계는 그대로 유지됩니다.
변경 이유
플랫폼 간 검색을 간소화하기 위해 이렇게 변경되었습니다. 비 Windows 플랫폼이 이 의미 체계를 포함하지 않는다는 사실을 고려할 때 이는 발생하지 않아야 하는 오버헤드입니다.
권장 작업
변경을 완화하기 위해 비 Windows 플랫폼에서 원하는 접미사를 수동으로 추가할 수 있습니다. 예시:
[DllImport(...)]
extern static void SetWindowTextW();
영향을 받는 API
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET