1

I'm trying to use an executable file (written in C) that calls a C++ library. I'm getting this error in my Windows Server 2008 box:

Faulting application name: sample.exe, version: 0.0.0.0, time stamp: 0x4d668157
Faulting module name: MSVCR90.dll, version: 9.0.30729.4974, time stamp: 0x4b7a226f
Exception code: 0xc0000417
Fault offset: 0x0002fc96
Faulting process id: 0xf10
Faulting application start time: 0x01cbd45775cc7011
Faulting application path: C:\Bprobe\sample.exe
Faulting module path: C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4974_none_50940634bcb759cb\MSVCR90.dll
Report Id: b37b5e67-404a-11e0-b69c-00155d2fb513

The same EXE file works on Windows 7 and Windows XP, so I'm guessing it's a missing component.

Any ideas?

This doesn't seem to be a problem exclusive to Windows Server 2008. I just tested on Windows XP and got the same error (I do have other Windows XP boxes where it worked).

7
  • It is, missing DLL (msvcr90.dll). You have to deploy the runtime support DLLs to the machine. Feb 24, 2011 at 19:42
  • Hans, the computer has the c++ runtimes installed (in fact, it has Visual studio 2010 installed with c++). What else can i be missing?
    – Gonzalo
    Feb 24, 2011 at 19:44
  • 1
    @Hans, the fact that a version string is there, and it's faulting in the module in question, is proof that msvcr90.dll is present.
    – bdonlan
    Feb 24, 2011 at 19:46
  • 1
    Should be moved to superuser as Gonzalo is the end-user not developer (no source code)
    – bdonlan
    Feb 24, 2011 at 19:47
  • 1
    Wrong version of visual studio, VS2010 uses msvcr100.dll. I reckon this code needs to be recompiled. And yes, you'll need the vendor for support, they should give you an installer to get everything needed to make this code work. Feb 24, 2011 at 19:54

2 Answers 2

2

Exception code 0xc0000417 is STATUS_INVALID_CRUNTIME_PARAMETER. Sounds like an invalid parameter was passed to a C runtime function.

I would launch the application under a debugger, with WinDBG or VS if you have it installed on this machine. Set the debugger to break on all first chance exceptions (or you could add in this exception code directly and have it break only on this exception) and when you hit the exception, examine the call stack. Use Microsoft's public symbol server to resolve symbols (it will have the VS 2008 CRT library symbols). Have the .pdb for your .exe present or on the symbol search path.

If frames from your module are anywhere on the call stack, double click the first one starting from the top down. Check to see which C runtime function is being called.

0

This isn't a missing library issue, but the information you've given is insufficient to even begin to diagnose the problem. Try running the program in a debugger and seeing where it crashes. Most likely either the program or the library you're using is incompatible with Windows 7 - ie, it makes some bad assumptions it was never allowed to make, resulting in crashes when those assumptions turn out not to be true in Win7.

If you do not have source code, try the compatibility wizard (right click exe -> troubleshoot compatibility). If this doesn't help, contact the vendor and have them fix the bug in their program.

5
  • I don't have the source code, and it does work in windows 7, the problem is in windows 2008.
    – Gonzalo
    Feb 24, 2011 at 19:43
  • 1
    No source? Contact the vendor?
    – James Love
    Feb 24, 2011 at 19:46
  • Already did, he made some suggestions but none of them helped :-(
    – Gonzalo
    Feb 24, 2011 at 19:46
  • 1
    @Gonzalo Contact vendor again. It's their problem. Feb 24, 2011 at 19:49
  • 1
    Have you tried attaching in VS2010 anyway to see where it halts? The debugger output might show up in ASM, but if you've no source, you've no real choice.
    – James Love
    Feb 24, 2011 at 19:50

You must log in to answer this question.