S
simon22
Guest
Hi - my app links to DLLs that in turn link to other DLLs, and over the years I have had a lot of grief from random problems which turned out to be caused by DLLs linking to different (and incompatible) C Runtime DLLs. I found through painful experience that the only way to keep things stable is to ensure that all components link to the same C Runtime DLLs as the main application (not always at all easy to arrange, but never mind). So for years I never upgraded Visual Studio because the knock-on implications of doing so were horrendous.
All of this got a lot better since VS 2015 when Microsoft finally got round to tackling this problem (e.g. see The Great C Runtime (CRT) Refactoring | C++ Team Blog). I did finally upgrade (I'm now using the latest build of Visual Studio 2019). My app now uses VCRUNTIME140.DLL and it's much easier to find DLLs that use that (and once found, they ought, fingers-crossed, to remain compatible, even when I upgrade visual studio again).
That's all background. My question is this: I want to link to a component that links to SQLITE3.DLL. According to 'Dependencies', SQLITE3.DLL is linked to MSVCRT.DLL. I'm pretty sure I've got the latest version of SQLITE3.DLL. But according to Google, MSVCRT.DLL is the C Standard library for Visual C++ compiler from version 4.2 to 6.0 - which sounds ancient, except that I can't work out what version of the MSVC complier Visual Studio 2019 uses. Can anyone tell me?
So what's going on? Can I safely link to this component (and thereby to MSVCRT.DLL) or if I do will I get C Runtime library compatibility problems once again?
All help much appreciated.
Simon
Continue reading...
All of this got a lot better since VS 2015 when Microsoft finally got round to tackling this problem (e.g. see The Great C Runtime (CRT) Refactoring | C++ Team Blog). I did finally upgrade (I'm now using the latest build of Visual Studio 2019). My app now uses VCRUNTIME140.DLL and it's much easier to find DLLs that use that (and once found, they ought, fingers-crossed, to remain compatible, even when I upgrade visual studio again).
That's all background. My question is this: I want to link to a component that links to SQLITE3.DLL. According to 'Dependencies', SQLITE3.DLL is linked to MSVCRT.DLL. I'm pretty sure I've got the latest version of SQLITE3.DLL. But according to Google, MSVCRT.DLL is the C Standard library for Visual C++ compiler from version 4.2 to 6.0 - which sounds ancient, except that I can't work out what version of the MSVC complier Visual Studio 2019 uses. Can anyone tell me?
So what's going on? Can I safely link to this component (and thereby to MSVCRT.DLL) or if I do will I get C Runtime library compatibility problems once again?
All help much appreciated.
Simon
Continue reading...