4 ms·
> Not having a standard-compliant libc seems really annoying. Also, curl is an IO heavy library. Emphasis on library, curl is not just a command line tool. Cal
by cesarb 4y ago
> Not having a standard-compliant libc seems really annoying. Also, curl is an IO heavy library.
Emphasis on library, curl is not just a command line tool. Calling a library compiled with one version of libc (actually msvcrXX.dll) from a program or library compiled with a different version of libc (for instance, msvcr71.dll vs msvcr81.dll) means things like file descriptors (not just FILE structs, but also numeric file descriptors) aren't shared between them.
- Joker_vD 4y agoYes, and if you link against something compiled with cc3290.dll (or whatever Borland's C runtime was called) you too will have bad time unless you structure your library with explicit understanding that there may be any number of C runtimes inside one process, including zero. Expose CreateX()/FreeX() from your library or arrange that the process would on start up pass to your library a table of allocation/deallocation functions to use and use those.
- kuroguro 4y agoEh, just link everything against the "old" "unsupported" msvcrt.dll that comes with the system and Bob's your uncle! /s
- CodesInChaos 4y agoNowadays there is the Universal C Runtime you could link against. It's available on Windows 10 out of the box, and via Windows Update or redistributable on Windows Vista/7/8.1.