Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用MSVC 9编译的程序不会在普通SP3 XP上启动_C++_Windows_Visual C++ - Fatal编程技术网

C++ 用MSVC 9编译的程序不会在普通SP3 XP上启动

C++ 用MSVC 9编译的程序不会在普通SP3 XP上启动,c++,windows,visual-c++,C++,Windows,Visual C++,我在虚拟机上安装了XP,更新它到SP3,然后测试了一个用Visual C++ 2008在我的真实计算机上编译的小程序-但是它并没有启动,但是只输出了一个错误,说已经发现了问题,并且重新安装了应用程序的矿厂,大小是10KB,甚至没有安装可以解决这个问题。 运行用MSVC 9编译的程序需要什么? 我可以包括一些DLL,让它在任何地方都能工作吗? 这可能取决于项目链接的DLL。检查程序集清单并检查这些DLL是否安装在VM上。这可能取决于项目链接的DLL。检查程序集清单并检查虚拟机上是否安装了这些DLL

我在虚拟机上安装了XP,更新它到SP3,然后测试了一个用Visual C++ 2008在我的真实计算机上编译的小程序-但是它并没有启动,但是只输出了一个错误,说已经发现了问题,并且重新安装了应用程序的矿厂,大小是10KB,甚至没有安装可以解决这个问题。 运行用MSVC 9编译的程序需要什么? 我可以包括一些DLL,让它在任何地方都能工作吗?
这可能取决于项目链接的DLL。检查程序集清单并检查这些DLL是否安装在VM上。

这可能取决于项目链接的DLL。检查程序集清单并检查虚拟机上是否安装了这些DLL。

您可能缺少MCVC9运行时库,请尝试将其复制到Windows System32文件夹…

您可能缺少MCVC9运行时库,尝试将其复制到Windows System32文件夹…

或者根据运行库选择多线程而不是多线程dll进行静态链接,或者按照tommieb75的建议安装复制到System32或应用程序文件夹也可以,但这不是一条路要走,好吗。对于不需要安装程序的小型应用程序,我更喜欢第一个选项。部署运行时安装程序很烦人。

要么针对运行时库进行静态链接,选择多线程而不是多线程dll,要么遵循tommieb75的建议,将复制安装到system32或应用程序的文件夹中也可以,但这不是一种方法,好吧。对于不需要安装程序的小型应用程序,我更喜欢第一个选项。部署运行时安装程序很烦人。

您的程序包含哪些内容?依赖于什么?然后,您需要在应用程序中包含C++可重分配的运行时DLL,或者更改程序使用静态C++运行时。同样,您是否使用ATL?MFC?自定义第三方库?它们都会向可执行文件添加依赖项,Win32将拒绝加载应用程序


一个简单的步骤是检查您的应用程序有哪些依赖项。

您的程序包含哪些内容?依赖于什么?然后,您需要在应用程序中包含C++可重分配的运行时DLL,或者更改程序使用静态C++运行时。同样,您是否使用ATL?MFC?自定义第三方库?它们都会向可执行文件添加依赖项,Win32将拒绝加载应用程序


一个简单的步骤是检查应用程序的依赖关系。

它可能是应用程序链接所针对的dll。该工具是每个程序员工具箱中用于调试dll依赖性问题的必备工具

如果您使用的是商业版而不是快速版msvc,那么您真正应该做的是将msvcmon redist组件复制到您的VM,在那里运行远程调试监视器,并从桌面开发环境连接到它。解释基本原理。因为听起来你的应用程序在XP上引发了异常

如果无法进行远程调试,并且依赖项检查器未指示dll问题,则可以查看系统应用程序事件日志,查看是否有更多信息。或者尝试将Dr Watson安装为事后调试程序。打开命令提示符并输入

drwtsn32 -i
安装Dr Watson作为验尸调试器,以及

drwtsn32

获取一个配置屏幕,允许您浏览崩溃转储的位置。您可以直接使用Dev Studio 2005及更高版本加载崩溃转储文件。我认为Watson博士不再支持Vista和Windows 7了。

它可能是应用程序链接所针对的dll。该工具是每个程序员工具箱中用于调试dll依赖性问题的必备工具

如果您使用的是商业版而不是快速版msvc,那么您真正应该做的是将msvcmon redist组件复制到您的VM,在那里运行远程调试监视器,并从桌面开发环境连接到它。解释基本原理。因为听起来你的应用程序在XP上引发了异常

如果无法进行远程调试,并且依赖项检查器未指示dll问题,则可以查看系统应用程序事件日志,查看是否有更多信息。或者尝试将Dr Watson安装为事后调试程序。打开命令提示符并输入

drwtsn32 -i
安装Dr Watson作为验尸调试器,以及

drwtsn32

获取一个配置屏幕,允许您浏览崩溃转储的位置。您可以直接使用Dev Studio 2005及更高版本加载崩溃转储文件。我认为Watson博士不再支持Vista和Windows 7。

您是使用静态或动态运行时构建的吗?您是使用静态或动态运行时构建的吗?我必须在项目属性中设置该选项吗?如果是,具体在哪里?提前谢谢。应该是C/C++-代码生成-运行时库。我的VS是德语,我不太懂
英语命名的e。我必须在项目属性中设置该选项吗?如果是,具体在哪里?提前谢谢。应该是C/C++-代码生成-运行时库。我的VS是德语,我不能完全确定英文名称。