我有一个 C++ 程序。这很简单 - 显示图像(启动屏幕)并启动另一个应用程序,然后在启动另一个应用程序时关闭。实际上,这个:http ://www.olsonsoft.com/blogs/stefanolson/post/A-better-WPF-splash-screen.aspx有非常小的变化(我的启动画面图像和我的程序是启动而不是示例一)。
它在我的 Windows 7 开发人员机器上运行良好。它还可以在安装了 Windows XP SP2 和 Visual Studio 2008 的另一台(虚拟)机器上运行。但它不能在没有 Visual Studio 的同一台虚拟 Windows XP SP2 机器上工作。它显示错误:“无法在动态链接库 msvcrt.dll 中找到入口点 memmove_s”。
我发现可能存在问题出在 WindowsCodec DLL 中(clear XP SP2 安装中没有这样的 DLL,但它在带有 Visual Studio 的 XP SP2 的 Windows/system32 文件夹中)所以我将它复制到了 clear 系统上的应用程序文件夹中。之后程序部分工作(启动后启动另一个应用程序)但没有显示启动画面图像。
安装 Microsoft Visual C++ Redistributable Package(2008 和 2010)没有帮助。
我发现了在 Visual Studio 中使用静态链接的建议(项目属性中的多线程 (/MT)选项 -> C/C++ -> 代码生成),但它也没有帮助。
我也尝试过 DependencyWalker,但找不到两个测试系统的依赖项有任何差异。
任何人都知道为什么会发生这种情况?我是 C++ 的新手,希望这是我不知道的显而易见的事情......