所以我一直在开发Windows XP Visual Studio 2008.我猜它是在32位模式下构建我的C ++应用程序。当我在我的新Windows 7 64位框上运行该程序时,它会在加载一半然后抛出访问冲突错误。所以,我加载了所有的开发工具,并在Windows 7上重新编译了该项目以找到崩溃站点,但它运行完美!什么?如何让我的应用程序在x64上运行?我是否必须发布两个单独的版本?我知道我可以定位64位,但我不喜欢两个单独的可执行文件。我已经搜索过但仍然可以获得两个版本的解决方案或一切.net。这是一个原生的C ++。某处有x86旗帜吗?
答案 0 :(得分:3)
“我必须发布两个单独的版本吗?” 这取决于您的应用程序的功能。大多数32位应用程序在WoW模式下运行良好。
“某处有x86标志?” 对。打开配置管理器(Alt-B,O),您可能会在平台选择中看到win32。
为什么你的应用程序崩溃会进行一些调试。您应该能够将调试器连接到64位操作系统上的32位版本。
答案 1 :(得分:1)
您是否考虑过可能会捣乱记忆?从应用程序加载到内存的方式来看,可能是32位Windows上的32位应用程序和64位Windows上的64位应用程序“变得幸运”,即没有重写的重要内存位置被覆盖而64位Windows上的32位应用程序则不那么幸运且崩溃。
答案 2 :(得分:0)
正如其他人已经说过的那样,应用程序很可能存在隐藏在一个环境中的错误。微软的application verifier是一个在学习曲线方面具有较低入门成本的好工具。这与debugging tools一起可以提供一个非常好的开始。看看gflags实用程序。