我有一个闪存驱动器,其应用程序的代码编写为VC ++ 2008,该应用程序在xp中工作正常,但问题出现在我将驱动器插入Windows 7机器时,它运行不正常。有什么方法可以通过编写代码使它与Windows兼容。
我不想在Windows 7中设置兼容性选项卡来运行程序..
我想在程序中编写代码,更像是补丁。
答案 0 :(得分:2)
您可以使用Microsoft Application Compatibility Toolkit,它会告诉您在Windows XP模式下运行应用程序时代码使用的Windows XP兼容性填充程序。
您只需运行应用程序并禁用各种填充程序,直到您的代码再次出现错误行为。您禁用的最后一个垫片是导致错误行为的原因。然后,您可以研究每个垫片的确切结果,以及您的代码必须采取哪些措施来修复它在Windows XP兼容模式下运行的错误。
答案 1 :(得分:1)
您可能需要在应用程序中添加Application Manifest以请求相应的安全权限,以允许您的应用程序执行它需要执行的操作。
如果需要提升权限,这可能会导致向用户显示UAC提示,但是您的代码将被允许执行Windows 7当前阻止的任何操作。
答案 2 :(得分:0)
如果您知道问题存在并且知道Win7上的UAC / etc ... / Manifest无法解决您的问题并且它与32/64位问题无关,请尝试其他方法。
我想你知道你的应用程序在Windows 7上出了什么问题。如果你不确定,至少你应该知道问题所在的位置(在哪个逻辑块中)(例如IO块,磁盘读/写)块,桂等。
现在坚持使用调试器。希望你的程序不是那么大,你无法分析它并找到问题的根源。你可能会遇到问题,因为某些功能不能按预期工作或类似。
然后,我想,您可以重新考虑/重新管理您的代码,并以它在两个平台上的工作方式进行更改。如果没有通用解决方案,请使用#ifdef
来确定当前平台(实际上是最糟糕的情况,因为您必须为不同的Windows版本使用不同的二进制文件)。