c++cwindowswindows-xp-embedded

XP embedded CRT version issue.. LoadLibraryEx failing


I am using a third party dll in my application which is destined to be run on a Windows XP embedded SP1 system.

It runs fine on my dev box however, but when I try to run it on target platform it fails with following event. This event occurs when I call LoadLibraryEx to load the third party DLL.

Event Type: Error
Event Source:   SideBySide
Event Category: None
Event ID:   32
Date:       9/8/2011
Time:       9:42:28 AM
User:       N/A
Computer:   OEM-J1XMVGHGNVX
Description:
The description for Event ID ( 32 ) in Source ( SideBySide ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: Microsoft.VC80.CRT, The referenced assembly is not installed on your system.

I found that installing Microsoft Visual C++ 2005 Redistributable Package will solve the problem, but I cannot do that as it is an embedded platform and MSI doesn't run on it. I tried copying dll files msvcm80.dll, msvcp80.dll and msvcr80.dll to the system but that did not solve the problem.


Solution

  • I found the solution and posting it here for someone struggling with similar problem.

    I copied the folders and files related to CRT 80 from my work computer WinSxS directory to target platform and it worked.

    I copied directory named "x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989" which contains CRT dlls. copied related files from "Policies" and "Manifests" directories.