XP嵌入式CRT版本问题.. LoadLibraryEx失败

时间:2011-09-13 07:06:42

标签: c++ c windows windows-xp-embedded

我在我的应用程序中使用第三方dll,它注定要在Windows XP嵌入式SP1系统上运行。

然而,它在我的开发盒上运行正常,但是当我尝试在目标平台上运行它时,它会失败并发生以下事件。当我调用LoadLibraryEx加载第三方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.

我发现安装Microsoft Visual C ++ 2005 Redistributable Package将解决这个问题,但我无法做到这一点,因为它是一个嵌入式平台,MSI不会在其上运行。我尝试将dll文件msvcm80.dll,msvcp80.dll和msvcr80.dll复制到系统,但这并没有解决问题。

2 个答案:

答案 0 :(得分:0)

将所有EXE和DLL放在一个目录中,包括CRT目录。复制工作,只要你把它们放在正确的位置。

答案 1 :(得分:0)

我找到了解决方案,并将其发布在那些遇到类似问题的人身上。

我将与CRT 80相关的文件夹和文件从我的工作计算机WinSxS目录复制到目标平台,然后就可以了。

我复制了名为“x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989”的目录,其中包含CRT dll。从“Policies”和“Manifests”目录中复制相关文件。