api-ms-win-crt-heap-l1-1-0.dll

T

Tom Ligon(2)

I'm looking for file api-ms-win-crt-heap-l1-1-0.dll. Reinstalling the Microsoft Visual C++ 2015-2019 Redistributable for x64 and x86 didn't help.
Should a dll with this name really exist, or is the problem somewhere else?
There is a file of this name at

C:\Windows\WinSxS\x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.18362.1_none_3da3af2845f54b85


Here are some more details:
I am trying to install a python pyd file using python import. The pyd file was created by python pip install, which used python setuptools and compiled and linked a large number of C and C++ files using Visual Studio C++ 2019 on my computer, which was installed as part of Visual Studio Community. So, if I create and install this using the same instance of Visual C++, I wouldn't expect to get this kind of problem.

The pyd file is very similar to a dll file. As a first step, I used Dependency Walker to check for dependencies. It found a very large number of missing dependencies with names like api.ms-win.xxx.dll and ext-ms-win-xxx.dll, but a post on StackOverflow said that Dependency Walker is obsolete and these names are not real dlls, but some kind of indirection.
Dependency Walker: missing dlls

Then I used dumpbin.exe, which I found in

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\Hostx64\x64\dumpbin.exe"

Dumpbin reported the following dependencies:
libopenblas.dll
python37.dll
MSVCP140.dll
KERNEL32.dll
VCRUNTIME140_1.dll
VCRUNTIME140.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
I added the directory of libopenblas.dll (basic linear algebra) to the PATH environment variable and can now find the first 6 dlls using the "where" command, but I cannot find the remaining 6 "api-ms-win-XXX.dll", and a search of my disk produced the information reported above.

As far as I can tell, everything is 64-bit. I checked the pyd file using Sysinternals sigcheck. Windows and Python are also 64-bit.

By the way, when I run python import, I get

Exception has occurred: ImportError

DLL load failed: The specified module could not be found.

This can mean that the module we are trying to import is not found, or that some dependency within it is not found. It is like the "file not found" error message, which does not say which file was not found, and has annoyed me for over 40 years.

Are these files "api-ms-win-XXX.dll" real dlls? If so, how do I install them? If not, why are they showing up in dumpbin and where do I need to look for the cause of the problem?

Continue reading...
 
Back
Top Bottom