Ich habe eine C# -App Targeting Windows-10 Desktop & Mobile Plattformen. Meine App ruft die in C++ geschriebene Windows-Laufzeitkomponente mit C++/CX-Bindungen auf.
Meine C++ Code verwendet Local Storage api Thread wie TlsAlloc, TlsGetValue, TlsSetValue und TlsFree. Wenn ich Windows App Certification Kit-Tests (WACK-Tests) ausführen, beschwert es sich über die Nichtverfügbarkeit dieser API in den Store-Apps. UWP Windows-10: Wie verwende ich Thread Local Storage APIs in Store-Apps
◦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.
Ich konnte nicht für Windows-10-Shop App Alternativen für diese api sehen. Diese MSDN page spricht nur über diese Verfügbarkeit der API auf Windows Phone 8. Ich konnte nicht irgendeine spezifische Informationen in Bezug auf diese api finden von Windows-10
ich meine native C++ Libs bin Kompilieren mit -DWINAPI_FAMILY = WINAPI_FAMILY_APP Flagge
Alle Vorschläge werden in hohem Grade
Seien Sie sicher, WACK aktuellen Stand zu halten, hat das mit jeder geändert SDK-Version. Wenn Sie einen sauberen Bericht wünschen, verwenden Sie [stattdessen FlsAlloc] (http://stackoverflow.com/a/27979758/17034), wie es der UCRT tut. –
Hi @HansPassant, Danke für die Antwort. Wenn Sie vorschlagen, FlsAlloc zu verwenden, bedeutet das, dass ich in meinem Code alle Aufrufe von TlsAlloc in FlsAlloc ändern muss, oder gibt es eine Makroeinstellung, die diesen Trick für mich übernehmen kann. Die [MSDN-Seite] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms686801 (v = vs.85) .aspx) sagt, dass "** Wenn eine Windows Phone Store-App dies aufruft Funktion wird es durch einen Inline-Aufruf von FlsAlloc ** ersetzt ". Tritt dieser Ersatztrick mit Windows-10 auf? oder ist das nur auf WinPhone-8 beschränkt? –
Mit SDK v10 kann TlsAlloc() von jeder UWP-App verwendet werden. Deshalb müssen Sie sicherstellen, dass Sie über ein aktuelles WACK verfügen. –