Visual studio 2008 用VS2008重新编译代码,现在它重新启动XP SP2

Visual studio 2008 用VS2008重新编译代码,现在它重新启动XP SP2,visual-studio-2008,mfc,Visual Studio 2008,Mfc,这很奇怪,但我从VS2005转到了VS2008(MFC,VC++),现在重新编译的程序会导致BSOD或在XP SP2上重新启动(在SP3及以上版本上正常工作)。它无法访问InitInstance 有没有人经历过这种情况,并且知道到哪里去解决它?我现在正在修改项目设置,但到目前为止还没有成功 调试和发布的行为方式相同(重新启动) 提前谢谢 添加:它实际上通过了CWinApp构造函数,但在到达InitInstance之前,在这两者之间的某个地方死亡。可能是由于某种硬件问题或驱动程序问题造成的。检查内

这很奇怪,但我从VS2005转到了VS2008(MFC,VC++),现在重新编译的程序会导致BSOD或在XP SP2上重新启动(在SP3及以上版本上正常工作)。它无法访问InitInstance

有没有人经历过这种情况,并且知道到哪里去解决它?我现在正在修改项目设置,但到目前为止还没有成功

调试和发布的行为方式相同(重新启动)

提前谢谢


添加:它实际上通过了CWinApp构造函数,但在到达InitInstance之前,在这两者之间的某个地方死亡。

可能是由于某种硬件问题或驱动程序问题造成的。检查内存,确保它们正确就位,风扇-可能是CPU过热。一般来说,用户模式程序不可能导致BSOD。

可能是某种硬件问题或驱动程序问题导致了BSOD。检查内存,确保它们正确就位,风扇-可能是CPU过热。一般来说,用户模式程序不可能导致BSOD。

如果它发生在InitInstance之前,我会在CWinApp构造函数中放置一个断点,以查看是否命中它。如果不是,那么很可能是dll加载问题

您的一个dll是否可能是使用vs2005编译的,然后与vs2008链接


或者您手工编辑了清单文件并加载了错误的sxs DLL?

如果它发生在InitInstance之前,我会在CWinApp构造函数中放置一个断点,以查看是否命中了它。如果不是,那么很可能是dll加载问题

您的一个dll是否可能是使用vs2005编译的,然后与vs2008链接


或者您手动编辑了清单文件并加载了错误的sxs DLL?

它似乎链接到了清单。在我禁用生成清单并提供我手动创建的清单后,一切又开始正常工作。

它似乎链接到清单。在我禁用生成清单并提供了我手动创建的清单之后,一切又正常了。

我在测试环境中并没有实际获得BSOD,而是重新启动了(至少有一个用户报告了BSOD)。我在两台不同的机器(一台虚拟机,一台真实机)上测试过它,所以它不是硬件。我在测试环境中实际上没有得到BSOD,我得到的是重新启动(BSOD由至少一个用户报告)。我在两台不同的机器(一台虚拟的,一台真实的)上测试过它,所以它不是硬件。我把消息框放在构造函数中,它可以通过所有的消息框,但从来没有在InitInstance的第一行显示消息框。我想我的下一步是设置远程调试,看看它是否显示了什么。我没有太多的DLL,可能只有几个第三方的链接,但值得检查(我今晚晚些时候会这样做)。不确定清单文件-我不知道什么是sxs DLL?我已经在构造函数中放置了消息框,它可以遍历所有消息框,但从未显示InitInstance第一行的消息框。我想我的下一步是设置远程调试,看看它是否显示了什么。我没有太多的DLL,可能只有几个第三方的链接,但值得检查(我今晚晚些时候会这样做)。不确定清单文件-我不知道什么是sxs DLL?我很高兴能够帮助您:)是的,但它确实似乎更喜欢我自己创建的清单,而不是它生成的清单。奇怪-你希望它知道它在做什么。有没有可能是你用vs2008将vs2005中创建的清单复制到了你的机器上(即它在源代码管理下)。这肯定会引起一个问题。是的,我在VS2005中手动创建了一个清单(我需要向其中添加一些部分),并将其引入到VS2008中。我没有意识到的是,VS2008已经在尝试生成并嵌入它自己的清单。我很高兴能够帮助您:)是的,但它确实似乎更喜欢我自己创建的清单,而不是它生成的清单。奇怪-你希望它知道它在做什么。有没有可能是你用vs2008将vs2005中创建的清单复制到了你的机器上(即它在源代码管理下)。这肯定会引起一个问题。是的,我在VS2005中手动创建了一个清单(我需要向其中添加一些部分),并将其引入到VS2008中。我没有意识到的是VS2008已经在尝试生成并嵌入它自己的清单。