C++ 用MSVC 9编译的程序不会在普通SP3 XP上启动
我在虚拟机上安装了XP,更新它到SP3,然后测试了一个用Visual C++ 2008在我的真实计算机上编译的小程序-但是它并没有启动,但是只输出了一个错误,说已经发现了问题,并且重新安装了应用程序的矿厂,大小是10KB,甚至没有安装可以解决这个问题。 运行用MSVC 9编译的程序需要什么? 我可以包括一些DLL,让它在任何地方都能工作吗?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
这可能取决于项目链接的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是德语,我不能完全确定英文名称。