Ich habe zwei Probleme mit DLL kompiliert mit VS2015 XP Toolset, wenn von nicht VS2015 exe aufgerufen.Probleme mit DLL kompiliert mit VS2015 XP Toolset
Erste und wichtigste ist, dass in solchen DLL-s tls-Variablen (wie Statik innerhalb Funktion deklariert führt Ergebnisse in GPE auf XP/Server 2003R2). Funktioniert gut unter Windows 7+ und/oder wenn von VS2015 exe aufgerufen. Es sieht so aus, als ob etwas in Runtime nicht initialisiert wird, wenn es so aufgerufen wird.
Das zweite Problem ist mit der Installation von W10SDK/Laufzeit-DLL Seite an Seite. Alles funktioniert gut mit EXE, lädt aber nicht aus dem DLL-Pfad. Sie müssen Runtime installieren oder DLLs in das exe-Verzeichnis kopieren.
Kann jemand vorschlagen eine Lösung vor allem für das erste Problem (zweite ist ärgerlich, aber kann behandelt werden).
Das ist nicht unwahrscheinlich, VS2015 ist das erste, das die Thread-Sicherheitsgarantie implementiert, die C++ 11 für solche Variablen fordert.Ihre CRT verwendet mehrere WinAPI-Funktionen Diese sind unter XP nicht verfügbar und versuchen mitzuhalten, wenn sie feststellen, dass sie nicht verfügbar sind. Sie beziehen sich auf Threading, Gebietsschema und, wie du vermutet hast es, TLS. Vor allem das fehlende FlsAlloc() ist ziemlich nachteilig. Wie gut das auf XP getestet wurde, ist irgendwie zu erraten. Verwenden Sie connect.microsoft.com, um Fehler zu melden. –