none
"iprop.dll" seems to be missing in Windows Server 2008 and X64 systems RRS feed

  • Question

  • Hi,

    We are using Windows Server 2008 and x64 system and I get an error that "iprop.dll" cannot be found when running the application that was running normally before for XP.

     

    Searching the system, the dll is only found in the 32 bit system folder 'Syswow64' and not in the System32.

     

    On 2003 x64 systems, this dll is present in both the 64 bit and 32 bit system folders.

    We'd like to confirm if the discrepancy is something to be expected in 2008.

     

    Your help is appreciated.

    Thanks

    Amal

    Wednesday, July 23, 2008 5:30 PM

Answers

  • Hi Amal,

     

    Windows 2008 has no 64-bit IPROP.DLL. This is normal, and by design – the functions which used to be in IPROP.DLL in Windows NT 4.0 were moved to OLE32.DLL back in Windows 2000:

     

    I’d guess your .NET application uses COM-interop, and is loading an old (c.1998) COM Component which was written for Windows NT or 9x. If the COM Component is 32-bit, it should be loading the IPROP.DLL in the SysWoW64 directory, which is provided for backwards compatibility (and forwards calls to OLE32.DLL). If the COM Component is 64-bit, it should not be looking for IPROP.DLL at all, it should be loading OLE32.DLL instead.

     

    Possibly the COM Component is testing to make sure that the IPROP.DLL file exists, and is looking for the file in the explicit, physical C:\WINDOWS\System32\IPROP.DLL location, bypassing 32-bit virtualisation somehow. Since C:\WINDOWS\System32\IPROP.DLL doesn’t (and shouldn’t) exist, it throws the error message. But this would not be a reliable programming technique by the Component, it is liable to break on newer versions of Windows – which is what it has done.

     

    I don’t think there is any easy workaround for this. Windows is working “as designed”. You may need to talk to the supplier of the 3rd party COM component and if necessary, debug it to find out why it is looking for an IPROP.DLL file in the System32 directory.

     

    Hope it helps,

     

    Thanks,

     

    Leena

     

    Wednesday, July 30, 2008 6:09 PM

All replies

  •  

    Hi Amal,

     

    Is your application 32-bit or 64-bit? Is it your own application or 3rd party software?

     

    If it is 32-bit application, it should be using the DLL in the SysWoW64 directory. 32-bit apps cannot use DLLs from the \Windows\System32 directory on a 64-bit machine. So if the app is 32-bit, the app shouldn’t care whether C:\Windows\System32\IPPROP.DLL exists or not.

     

    As per my knowledge, it is normal and “by design” that there is no 64-bit IPPROP.DLL in Server 2008.

     

    Hope it helps.

     

    Thanks,

     

    Leena.

    Thursday, July 24, 2008 5:44 PM
  •  

    Hi Leena,

    It is .NET application that is running under x64 bit machine and the section that is failing is in a 3rd party component used in the solution.

    The component is complaining about this missing file.

    does this make sense?

    Thanks

    Amal

    Thursday, July 24, 2008 6:10 PM
  • Hi Amal,

     

    Windows 2008 has no 64-bit IPROP.DLL. This is normal, and by design – the functions which used to be in IPROP.DLL in Windows NT 4.0 were moved to OLE32.DLL back in Windows 2000:

     

    I’d guess your .NET application uses COM-interop, and is loading an old (c.1998) COM Component which was written for Windows NT or 9x. If the COM Component is 32-bit, it should be loading the IPROP.DLL in the SysWoW64 directory, which is provided for backwards compatibility (and forwards calls to OLE32.DLL). If the COM Component is 64-bit, it should not be looking for IPROP.DLL at all, it should be loading OLE32.DLL instead.

     

    Possibly the COM Component is testing to make sure that the IPROP.DLL file exists, and is looking for the file in the explicit, physical C:\WINDOWS\System32\IPROP.DLL location, bypassing 32-bit virtualisation somehow. Since C:\WINDOWS\System32\IPROP.DLL doesn’t (and shouldn’t) exist, it throws the error message. But this would not be a reliable programming technique by the Component, it is liable to break on newer versions of Windows – which is what it has done.

     

    I don’t think there is any easy workaround for this. Windows is working “as designed”. You may need to talk to the supplier of the 3rd party COM component and if necessary, debug it to find out why it is looking for an IPROP.DLL file in the System32 directory.

     

    Hope it helps,

     

    Thanks,

     

    Leena

     

    Wednesday, July 30, 2008 6:09 PM
  • My solution for this problem is to copy paste the iprop.dll from SysWoW64 to the system32 directory. It worked for me.
    Friday, May 29, 2009 1:44 PM