C# 为什么我的二进制文件在Windows 8上运行,而不是在Windows 7上运行?
我有一个VC2013 x64项目,该项目编译成功。它在Win8上运行时没有任何问题,但在到达Win7上的main()之前立即崩溃,并显示以下消息: “应用程序无法正确启动(0x000007b)。单击“确定”关闭应用程序。” 我已经尝试安装了所有的vc运行时。我在几个Win7和Win8系统上试过,结果总是一样的 我不确定是什么原因导致了这种情况,我也不知道关于项目的哪些细节可能对解决这个问题很重要。我以前用VC写过mayn程序,从来没有遇到过这样的问题。这就是为什么我在开发过程中没有检查程序是否在非win8 pc上运行,因为我的开发机器目前是win8。我将发布一些关于此解决方案的事实,也许这些信息有帮助:C# 为什么我的二进制文件在Windows 8上运行,而不是在Windows 7上运行?,c#,c++,windows,visual-c++,64-bit,C#,C++,Windows,Visual C++,64 Bit,我有一个VC2013 x64项目,该项目编译成功。它在Win8上运行时没有任何问题,但在到达Win7上的main()之前立即崩溃,并显示以下消息: “应用程序无法正确启动(0x000007b)。单击“确定”关闭应用程序。” 我已经尝试安装了所有的vc运行时。我在几个Win7和Win8系统上试过,结果总是一样的 我不确定是什么原因导致了这种情况,我也不知道关于项目的哪些细节可能对解决这个问题很重要。我以前用VC写过mayn程序,从来没有遇到过这样的问题。这就是为什么我在开发过程中没有检查程序是否在
- 它使用boost
- 它是c++/clr
- 它引用了另一个用c#编写的项目,并使用了其中的一些类。本项目的平台目标设置为“x64”
- 它使用卷曲
- 它使用vmware vddk(一个C库)
#define _WIN32_WINNT _WIN32_WINNT_WIN7
#include <WinSDKVer.h>
#定义WIN32_WINNT WIN32_WINNT_WIN7
#包括
在前面
#include <SDKDDKVer.h>
#包括
在targetver.h中。它仍然会因为这个错误而崩溃。
[/edit]Ha!我找到了!当编译时没有/clr,但链接到使用/clr的程序时,boost库出现了一些问题。我使用的解决方法是使用
#define BOOST_THREAD_DYN_LINK
全局,并将相应的DLL放入进程的工作目录中。关于这一点还有很多要读的,这似乎是一个老问题。新的事情似乎是它运行在Win8上。我发现的链接只是报告它根本不起作用,可能他们没有在Win8上尝试过:
Windows 7计算机/映像是否具有编写程序的.net版本?我认为它的4.5+包含在Windows 8+中,而Windows 7只附带3.5。很明显,您已经检查了Win7是否为x64。。。以防万一……你试过重新安装C++ ReDIST包吗?我已经做了一些搜索,一些类似问题的人已经指出,C++ ReDIST DLL似乎没有正确安装。[link]()或者你的Windows7机器的一些东西似乎出了问题。尝试卸载redists并从头开始重新安装。另外,请确保您的Windows目标版本(_WIN32_WINNT)为0x0601或更高版本。我认为这不是计算机的问题。我试了好几种。我试着自己安装vc Redist,也试着用McRip vc Redist安装程序安装。该项目以.NET4.0运行时为目标,我在目标机器上使用了4.5安装程序。此外,安装的窗口均为x64。我还试着用管理员权限提升它:这也会导致这个错误。谢谢你不是这个家伙!如果Windows 8上没有出现此问题,则很难找到它。