I have a couple of DLLs developed on a Windows XP machine with an old compiler (of which I have no information).
These DLLs where then called from a VB.NET application.
From the documentation a colleague left me, I know that the only prerequisite for the right running of these DLLs is the presence of the "DFORRT.DLL" in the same folder where the DLL is.
Now we have passed to an Intel Visual Fortran Composer XE 2011 and it seems that something is changed:
- "DFORTT.DLL" is not required anymore; instead, sometimes "libmmd.dll", sometimes "msvcr80.dll" and other times "libifcoremd.dll" are required.
- the way parameters are passed to the DLLs seems different too: always from the documentation of my colleague, I have to pass every parameter "ByRef", also if it is a simple variable and not an array or a matrix.
So I have these questions:
- is there a way to determine a minimum collection of DLLs required to have our DLLs (same code, only the compiler is changed) run correctly?
- the compiler is run on a 64bit enviroment while the production environment is a 32bit and so we have set the compiler to 32bit mode; is there anything else we have to do or to pay attention to?
I have another problem too: a new DLL, written and compiled under Intel Visual Fortran Composer XE 2011 always on a 64bit PC, if called on a 32bit windows XP PC or on a 32bit windows 7 PC(whit a 64bit processor) throw a "Side-by-Side configuration information" error with code 14001.
With the same DLL and the same calling code, on another 32bit windows 7 PC, is all ok and the DLL is called correctly.