Windows-10 Desktop & 모바일 플랫폼을 대상으로하는 C# 앱이 있습니다. 내 응용 프로그램은 C++로 작성된 Windows 런타임 구성 요소를 C++/cx 바인딩과 함께 호출합니다.
내 C++ 코드는 하여 TlsAlloc, TlsGetValue, 으로 TlsSetValue 및 TlsFree 같이 로컬 저장소 API를의 스레드 사용합니다. Windows App 인증 키트 테스트 (WACK 테스트)를 실행하면 저장소 앱에 이러한 API가 제공되지 않는다고 불평합니다.UWP Windows-10 : Store 앱에서 Thread Local Storage API를 사용하는 방법
◦API TlsAlloc in kernel32.dll is not supported for this application type. sample.dll calls this API.
◦API TlsFree in kernel32.dll is not supported for this application type. sample.dll calls this API.
◦API TlsGetValue in kernel32.dll is not supported for this application type. sample.dll calls this API.
◦API TlsSetValue in kernel32.dll is not supported for this application type. sample.dll calls this API.
나는 윈도우 10 스토어 앱의 이러한 API를의 대안을 참조 couldnt한다. 이 MSDN page 은 Windows Phone 8에이 api의 가용성에 대해서 이야기합니다. 나는 이러한 API를의에 관한 특정 정보를 찾을 couldnt는 윈도우 10 나 를 사용하여 내 네이티브 C++ libs와 컴파일하고
-DWINAPI_FAMILY = WINAPI_FAMILY_APP 어떤 제안이 매우
하는 업데이트 괴짜를 유지해야을, 이것은 모든 변경되었습니다 SDK 릴리스. 깨끗한 보고서를 원하면 UCRT처럼 [Use FlsAlloc 대신] (http://stackoverflow.com/a/27979758/17034)을 사용하십시오. –
안녕하세요. @HansPassant, 답변 해 주셔서 감사합니다. FlsAlloc을 사용할 것을 제안 할 때, 내 코드에서 TlsAlloc에 대한 모든 호출을 FlsAlloc으로 변경하거나이 트릭을 수행 할 수있는 매크로 설정이 필요하다는 것을 의미합니다. [MSDN 페이지] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms686801(v=vs.85) .aspx)는 "** Windows Phone Store 응용 프로그램이 이것을 호출하면 기능은 FlsAlloc ** "에 대한 인라인 호출로 대체됩니다. 이 대체 트릭이 Windows-10에서 발생합니까? 또는 이것은 WinPhone-8에만 국한되어 있습니까? –
SDK v10을 사용하면 모든 UWP 앱에서 TlsAlloc()을 사용할 수 있습니다. 그래서 당신이 최신 WACK을 가지고 있는지 확인해야합니다. –