0

我在我的应用程序中使用了第三方 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 复制到系统中,但这并没有解决问题。

4

2 回答 2

0

将所有的 EXE 和 DLL 放在一个目录中,包括 CRT 的。复制作品,前提是您将它​​们放在正确的位置。

于 2011-09-13T08:01:38.243 回答
0

我找到了解决方案并将其发布在此处,以供遇到类似问题的人使用。

我将与 CRT 80 相关的文件夹和文件从我的工作计算机 WinSxS 目录复制到目标平台并且它工作。

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

于 2011-10-03T09:00:19.597 回答