W dniu 2014-06-12 01:22, Grzegorz Niemirowski pisze:
> Zwracam honor :) Masz rację odnośnie pliku systemowego. Swego czasu
> Microsoft doszedł do wniosku, że programiści nie powinni korzystać z
> msvcrt.dll, tylko z biblioteki odpowiedniej do wersji Visual Studio, np.
> MSVCRT100.DLL dla Visual C++ 2010. Dlatego plik msvcrt.dll nie jest
> dystrybuowany w pakiecie Visual C++ Redistributable i nie ma go jak
> zaktualizować inaczej, jak kopiując z innej wersji Windows. Z drugiej
> jednak strony niektórzy programiści linkują do niego, np. ci
> korzystający z mingw. Dlatego są problemy na starych wersjach Windows,
> jak np. XP 64.
>
Skopiować z innego systemy też nie można.
Wersja msvcrt.dll dystrybuowana z nowszymi systemami korzysta z
dodatkowych bibliotek, których nie ma w Windows XP x64.
Jedyny bezpieczny sposób na uaktualnienie tego pliku
to instalacja Service Packa,
tyle że Service Pack 2 dla Windows XP x64 zawiera bibliotekę msvcrt.dll
w której dalej brakuje _vswprintf.
Tak przy okazji.
Visual Studio 6.0 zawierał tool o nazwie Dependency Walker
pozwalający podejrzeć jakie funkcje są eksportowane przed
daną bibliotekę oraz z jakich bibliotek ona sama korzysta.
Obecnie Visual Studio nie zawiera już tego programu
ale można znaleźć jego niezależną wersje na sieci.
/Robert