Archived

This forum has been archived. Please start a new discussion on GitHub.

Running iceboxnet in 32-bit mode on XP64

I have a need due to 3rd party vendor libraries compiled 32-bit to run iceboxnet in 32-bit mode on a 64-bit XP machine.

Watching Task Manager I see iceboxnet start up but it's running in 64-bit mode. Does anyone know of a way to force iceboxnet to run in 32-bit mode (thereby loading 32-bit DLLs instead of trying to load 64-bit DLLs)?

Comments

  • matthew
    matthew NL, Canada
    You cannot force a 64 bit compiled binary to run in 32 bit mode. What you can do, however, is build or install a 32 bit version of Ice and run that.
  • matthew
    matthew NL, Canada
    Sorry, I misread your post. We build Ice with a platform target of "Any CPU", and therefore, as you've discovered, they run in 64 bit mode on a 64 bit platform. To change this you can either recompile Ice, or use corflags to change the CPU requirement. In this case, the latter is the simplest.

    First, examine the existing flags.
    C:\Ice-3.3.1-VC90\bin>corflags iceboxnet.exe
    Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  3.5.21022.8
    Copyright (c) Microsoft Corporation.  All rights reserved.
    
    Version   : v2.0.50727
    CLR Header: 2.5
    PE        : PE32
    CorFlags  : 1
    ILONLY    : 1
    32BIT     : 0
    Signed    : 0
    

    As you can see 32BIT is 0. To change this:
    C:\Ice-3.3.1-VC90\bin>corflags /32bit+ iceboxnet.exe
    Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  3.5.21022.8
    Copyright (c) Microsoft Corporation.  All rights reserved.
    
    
    C:\Ice-3.3.1-VC90\bin>corflags iceboxnet.exe
    Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  3.5.21022.8
    Copyright (c) Microsoft Corporation.  All rights reserved.
    
    Version   : v2.0.50727
    CLR Header: 2.5
    PE        : PE32
    CorFlags  : 3
    ILONLY    : 1
    32BIT     : 1
    Signed    : 0
    

    If you don't want to change the original executable, you can copy it (to say iceboxnet32.exe) and change the 32bit flag on the copy.