0

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.

Ratnesh Maurya
  • 706
  • 3
  • 10

2 Answers2

0

Put all your EXE's and DLL's in one directory, including the CRT ones. Copying works provided you put them in the right place.

MSalters
  • 173,980
  • 10
  • 155
  • 350
  • Thanks!!! i tried the same and it doesnt works. I also made sure that the directory is included in %PATH% environment variable. – Ratnesh Maurya Sep 13 '11 at 09:26
  • The PATH isn't needed; `LoadLibraryEx` checks the module directory first. Can you run Dependency Walker on the target? – MSalters Sep 13 '11 at 09:40
  • Even dependency walker says "Error: The Side-by-Side configuration information for "d:\xxx\yyy.DLL" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001). Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module." – Ratnesh Maurya Sep 13 '11 at 13:10
0

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.

Ratnesh Maurya
  • 706
  • 3
  • 10