大家好我已经使用QT插件在VS 2008中创建了一个应用程序。它在所有的Windows系统中运行良好。 但是当我尝试在XP中运行相同的应用程序时,它显示错误::程序入口点xxx无法位于xxx.dll中。
我该如何解决这个问题。
答案 0 :(得分:1)
我认为您需要在XP系统上安装VS 2008运行时。您可以采取以下几种方式,包括:
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\vcredist_x86\vcredist_x86.exe
)C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
中的DLL复制到与可执行文件相同的目录中。您的程序似乎在解析在msvcrt.dll中查找的引用时遇到问题 - 这是一个不直接属于VS 2008运行时(msvcrt90.dll)的系统DLL。我使用Qt插件测试了VS 2008中的一些Qt演示,我没有看到他们直接链接到msvcrt.dll(正如我所料,程序链接到msvcr90.dll)。
但是,当我使用Dependency Walker(http://www.dependencywalker.com/)查看程序时,我确实看到msvcrt.dll
被拉入 - 链接到advapi32.dll
的结果(在我的WinXP系统上,msvcrt.dll
的链接是间接的netapi32.dll
)。我的WinXP SP3系统上msvcrt.dll
的副本没有wcscpy_s
的导出,而Win7上的导出。{1}}。但是在WinXP上使用msvcrt.dll
的任何内容都没有尝试导入wcscpy_s
,因此没有问题它不会被导出。
我建议您使用Dependency Walker(http://www.dependencywalker.com/)之类的内容来查找试图从wcscpy_s
中删除丢失的msvcrt.dll
符号的内容。我认为你有一个不属于WinXP的DLL或应该被重建为'XP兼容'的机会很好。