#For mingw and cygwin, can only mingw use msvcrt*.dll? and can only cygwin use cygwin1.dll?

1 messages · Page 1 of 1 (latest)

visual cradle
hexed forge
#

Exactly.

visual cradle
#

where is msvcrt*.dll?

hexed forge
ivory kelp
#

I think there's a mistake in the docs. msvcrt*.dll matches only one file as far as I know. It's either msvcrt.dll (internal C runtime) or msvcr*.dll (redistributable runtimes from Visual Studio, e.g. msvcr100.dll, msvcr110.dll).

visual cradle
#
my@DESKTOP MINGW64 /c/Windows/System32
$ find . -type f -iregex ".*msvcrt.*\.dll"
./msvcrt.dll

my@DESKTOP MINGW64 /c/Windows/System32
$ cd "/e/Windows Kits/10"

my@DESKTOP MINGW64 /e/Windows Kits/10
$ find . -type f -iregex ".*msvcrt.*\.dll"

my@DESKTOP MINGW64 /e/Windows Kits/10
$ cd "/e/software/Microsoft Visual Studio/2022/Community"

my@DESKTOP MINGW64 /e/software/Microsoft Visual Studio/2022/Community
$ find . -type f -iregex ".*msvcrt.*\.dll"

my@DESKTOP MINGW64 /e/software/Microsoft Visual Studio/2022/Community
$ cd /e/software/msys2

my@DESKTOP MINGW64 /e/software/msys2
$ find . -type f -iregex ".*msvcrt.*\.dll"

I only find things about msvcrt in the "/c/Windows/System32"

ivory kelp
#

Yes, msvcrt.dll is the internal C runtime, it's a system component that has been disconnected from Visual Studio for a long time.

visual cradle
#

does msvcrt.dll have version iteration?

ivory kelp
visual cradle
#

does mingw-w64 have official docs?

visual cradle
#

these are not my ideal official docs website. it is ugly.

cloud monolith
#

Documentation is never pretty, no matter how you dress it up.

visual cradle
#

mingw is more poor than cygwin docs. how do you learn mingw?

cloud monolith
#

By learning from msvc. Mingw strives to complete the win32 API that Windows uses. Thus you can use Microsoft's documentation for that.

visual cradle
#

as far as I know, those are two different C runtime.

#

@cloud monolith please send me a link for your start point learning msvc.

ivory kelp
obsidian flint
#

Are the dlls named different or what?

#

Is it "ucrtbase.dll" ?

ivory kelp
#

Is what ucrtbase.dll though?

#

Ucrt is mostly in ucrtbase.dll and a bunch of api-ms-win-*.dll files.

#

Runtimes used by default with various versions of Visual Studio are mostly in msvcr*.dll and msvcp*.dll.

obsidian flint
ivory kelp
#

Not unless you explicitly use one. You can build a mingw-w64 toolchain that defaults to one of the Visual Studio runtimes, but our "mingw32"/"mingw64" toolchains default to the internal Windows runtime, msvcrt.dll.

obsidian flint
#

As in, it's Microsoft code, is it downloaded from a Microsoft server or something?

ivory kelp
#

It's installed by default on newer Windows versions.

obsidian flint
ivory kelp
#

MSYS2 doesn't do anything.

#

Ucrt can be optionally installed by the user or admin on some older Windows versions.

obsidian flint
#

*in msys2

ivory kelp
#

Something like this I guess.

fallen nexus
#

@visual cradle if your gonna ask so many questions you might want to use the text channels instead

visual cradle
#

good idea.

ivory kelp
#

I actually like that we don't have this in the text channels. I don't know if the help forum is the best place either though.

visual cradle
#

This statement confuse me very much:

  1. one application only have one memory space?
  2. one application can not directly access the contents of a DLL, rather than a single copy of a DLL?
  3. multiple application can not directly access the contents of a DLL, rather than a single copy of a DLL?
ivory kelp
#
  1. Kind of yes. The operating system provides a virtual memory space, often a different one for each process. Memory space means all possible memory addressed from 0 to the maximum pointer value of the platform (so around 2^64 bytes on a usual 64-bit system). Usually only a small part of the memory space is actually usable. Not everything in the virtual memory corresponds to RAM, there are also mapped files from the disk, there is paging to disk ("swap").