32 and 64 bit compatability

32 and 64 bit compatability

Hi,

If the Fortran excutable is compiled under 32 bit Windows XP SP3, can the excutable be run on 64 bit Windows Server 2008 with redistributable libraries installed?

If yes, should the redistributable libraries be IA-32 or Intel-64? Actually both were tried but neither worked.The following is the error:

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)

If no, must the source code be recompiled under 64 bit environment?

Many thanks.

5 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

A 32-bit executable can be run on a 64-bit Windows system without problems. If there are DLL dependencies, you need the 32-bit DLLs, but it may be that they need to be in PATH before the 64-bit DLLs. Windows x64 knows to skip over 32-bit DLLs when loading a 64-bit EXE.

I should mention that it's perfectly possible to build a 64-bit Fortran application on 32-bit Windows. You just need to select an x64 configuration in VS or configure the command line for 64-bit builds. Of course you can't run a 64-bit app on 32-bit Windows, but you can build it.

Steve - Intel Developer Support

Thanks for the reply. The excutable was compliled under 32 bit Windows XP SP3, and copied to a 64 bit Windows Server 2008 which installs IA32 redistributable. Based on your answer, this should work, but the error (Exception from HRESULT: 0x8007000B) still exists. Could you please give some possible improvements? Many thanks.

It isn't the executable that's the issue here, but some DLL you have loaded that is the "wrong format". At what point in the program does this error occur?

Steve - Intel Developer Support

Citação:

lz escreveu:

... Based on your answer, this should work, but the error (Exception from HRESULT: 0x8007000B) still exists. Could you please give some possible improvements?

The problem is probably specific to your application and system, and for that reason it is unlikely that it can be solved without knowing specifics.

My suggestion would be to (i) ascertain the DLLs that your application depends on, (ii) check that these DLLs are accessible through the PATH variable during execution, and (iii) that the DLLs so accessed are the correct versions (DLL-32/DLL-64, in particular).

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo!