Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Q about building X64 DLLs

DavidWhite
Valued Contributor II
889 Views

I'm just starting trying to migrate my Win32 DLLs to x64.

When I run dependency walker on my DLL's it reports that it found different modules with different CPU types.  As I am not yet able to test these DLL's with their intended x64 apps - I assume that this error means that they will not run correctly.  Is that right?

Thanks,

David

0 Kudos
1 Solution
FortranFan
Honored Contributor III
889 Views

David White wrote:

I'm just starting trying to migrate my Win32 DLLs to x64.

When I run dependency walker on my DLL's it reports that it found different modules with different CPU types.  As I am not yet able to test these DLL's with their intended x64 apps - I assume that this error means that they will not run correctly.  Is that right?

Thanks,

David

Can you confirm you're using a 64-bit tool such as 64-bit Depends.exe to check the DLL dependencies?

View solution in original post

0 Kudos
4 Replies
TimP
Honored Contributor III
889 Views

It's normal to allow on PATH  (and ignore) .dlls with the wrong /machine setting.  You will need .dlls with the correct setting in place of or in addition to those others.  I suppose Dependency Walker would select the correct ones if present (which they may not be, if building on a 32-bit Windows).

In the past, we've seen tools for building .dll (not from Microsoft or Intel) which failed to set /machine even though building from X64 .obj files.  Such .dlls will be ignored, not used (or used, but fail, with a 32-bit build).

0 Kudos
FortranFan
Honored Contributor III
890 Views

David White wrote:

I'm just starting trying to migrate my Win32 DLLs to x64.

When I run dependency walker on my DLL's it reports that it found different modules with different CPU types.  As I am not yet able to test these DLL's with their intended x64 apps - I assume that this error means that they will not run correctly.  Is that right?

Thanks,

David

Can you confirm you're using a 64-bit tool such as 64-bit Depends.exe to check the DLL dependencies?

0 Kudos
Steven_L_Intel1
Employee
889 Views

DependencyWalker doesn't follow Windows' rules for how DLLs are located on PATH. It doesn't understand the skipping of "wrong architecture" DLLs on an x64 system.

0 Kudos
DavidWhite
Valued Contributor II
889 Views

The x64 version of dependency walker reports "x64" for all loaded DLL's.

Thanks

0 Kudos
Reply