Hi all (and Steve, if he is still here and read this),
that question is independent from my last question.
My students and I are using a program to calculate energy balances and the like. The functionality of this program can be extended by own functions.
For this I write such functions, which are compiled as a DLL. The DLLs I distribute. And for most of the students, it works without any problem. But for some students (on some computers) the DLL is shown as not be found. In that cases I distribute all DLLs to, which are shown in the dependency walker as used in my DLL.
That are (maybe it can be useful to know):
(The use of some of these DLLs I do not understand in this context.)
But the real question is, what the students can do that they can use my DLL. Do anyone help?
You probably just need to pack the visual studio redistributable ( https://support.microsoft.com/en-gb/help/2977003/the-latest-supported-visual-c-downloads ) with your own dll.
The MS Windows DLLs (e.g. kernel32.dll, ntdll.dll, etc...) should not be distributed with your program. They should be present on every Windows system *** The students may have different versions of MS Windows than your development system.
I agree that all you should need are the MSVC and Intel compiler redistributables. Both are available in EXE installers and MSP packages that can be bundled into your own installer.
A good rule - never ever replace or add files that go under the Windows top-level folder.
>>yes, I replace only not already existing files. I don't touch existing files
A "standard" practice is to install the required DLLs into the same folder as the execuitable, or into a user folder in PATH. Attempting to copy the Windows DLLs into either folder will not yield a "Replace...". It is strongly recommended that you do not mix one version of a Windows DLL with another version.
You should never install your DLL into System32 or elsewhere in the Windows folders.