升级到.NET 4.0时调用GetTickCount64

升级到.NET 4.0时调用GetTickCount64,.net,visual-studio-2012,windows-xp,.net,Visual Studio 2012,Windows Xp,我被迫从VS2008升级到VS2012。这意味着我的所有代码都需要更新到.NETFramework4.0。我的目标是通过此更新保持与Windows XP的兼容性 所以我有一个多项目的解决方案。大多数是用VB编写的。一个项目是用C++编写的,因为我需要对DDE命令进行非托管调用,并将其封装在托管对象周围。我能做的最好的事情就是在VS2008环境下用.NET3.5编译它,这样它就可以在WindowsXP中正常工作。我的主要项目现在是一个混合模式组装。这可能都是多余的信息,但我声明这只是为了以防万一

我被迫从VS2008升级到VS2012。这意味着我的所有代码都需要更新到.NETFramework4.0。我的目标是通过此更新保持与Windows XP的兼容性

所以我有一个多项目的解决方案。大多数是用VB编写的。一个项目是用C++编写的,因为我需要对DDE命令进行非托管调用,并将其封装在托管对象周围。我能做的最好的事情就是在VS2008环境下用.NET3.5编译它,这样它就可以在WindowsXP中正常工作。我的主要项目现在是一个混合模式组装。这可能都是多余的信息,但我声明这只是为了以防万一


编译后的程序在我的Windows7开发机器上运行良好。当我在Windows XP机器上测试它时,大约20%的程序执行时我会得到错误:“找不到GetTickCount64。”我知道Windows XP不支持此调用。主要的问题是,在我的软件中,我不需要知道自上次启动以来已经多长时间了。我假设在编译时,VisualStudio添加了一些额外的内容。单击该消息上的“确定”后,软件工作正常。我只是有点讨厌。有没有办法找到打电话的地方,然后杀了它?我已经尝试过通过“GETICKCONT64”解决方案搜索,但一无所获。

< P>听起来,您可能遇到了VisualStudio 2012中针对C++的WindowsXP目标相关的问题。在VisualStudio 2012更新1中添加了支持C++目标的Windows XP,但必须在项目属性中显式选择。


您能捕获异常并输出堆栈跟踪吗?“我被迫从VS2008升级到VS2012。这意味着我的所有代码都需要更新到.NET Framework 4.0。”您可能被迫更新到.NET Framework 4.0,但这不是更新到VS 2012的直接结果。VS2012支持以.NET 2.0(VS2005默认)或.NET 3.5(VS2008默认)为目标。Jim,我不知道是否有异常需要捕获。它只显示一个消息框并阻止当前进程,直到您单击“确定”。Z80Z28,你提出了一个很好的观点。我确实尝试降级到Framework3.5,但是在引用我正在使用的旧版本的DataVisualization控件时遇到了问题。如果我在svn中比较/合并旧版本,我肯定能找到答案。我尝试将所有内容降级到Framework 3.5,但我得到了4.0错误的间接依赖关系。在我看来,即使我在VC++项目中选择了3.5,在VS2012中编译仍然会将依赖项保留为4.0。即使安装了更新,我在工具集中也没有看到此选项。让我看看这个。我必须修复我的更新安装才能得到这个选择。一旦我为我的VC++项目设置了这个,错误就在XP测试机上消失了。谢谢你的帮助:)