我的可执行文件有问题.我在我的Windows 7 64位开发盒上运行这个C++ 32位可执行文件,它还包含所有这些Microsoft应用程序(Visual Studio 2008 + 2010,TFS,SDK,Microsoft Office)......它仍然可以正常运行.
现在我得到了同一个程序的客户端安装,并被要求用干净的Windows 7安装进行测试.因此,我得到了一个Windows 7 64位VMware,并将其更新为Windows 7 SP 1(我的开发人员盒正在调整的版本相同).但是在我的开发人员盒上,一切都很好,该程序不适用于VMware(30天试用版)框.
x86 Dependency Walker告诉我缺少以下DLL文件:
我搜索了那些API-MS-WIN -... DLL文件,发现它们实际上应该已经成为Windows 7的一部分(一些网站声称属于Windows 8和Windows Server 2012).
我已经尝试过我发现的建议修复程序,它们是:
但这并没有解决任何问题.:-(
旁注:我的开发盒也没有它们,似乎不需要它们.例如,我的盒子上的user32.dll没有链接其中一个,而VMware上的安装确实如此.
有关如何解决此问题的任何想法?我试图在Microsoft页面上找到合适的下载/修复程序,但是我失败了.
在解决了我的问题后,我想报告我发现的内容,我不能将此作为答案发布,因为问题已经结束.
实际上Dependency Walker工具报告的所有DLL文件都丢失了,即那些
* API-MS-WIN-CORE-...
Run Code Online (Sandbox Code Playgroud)
类型DLL文件不是实际问题的一部分.
在我的情况下,三个OCX文件的注册丢失,之后一切都很好,但依赖Walker工具仍然列出了所有相同的DLL文件,即使程序刚刚运行正常.
它的要点:正如其他人所说,该工具现在有点过时,并不总是适用于较新的操作系统.因此,请密切关注并且不要因错过'API-MS-WIN-CORE-COM-L1-1-0.DLL'而误导......,问题可能完全在其他地方.
我在Windows上使用MinGW构建了Clang,目标是三倍x86_64-w64-windows-gnu.可执行文件clang.exe和clang ++.exe按预期工作,如果我在发布模式下构建它们(它们编译程序没有错误),但是当在调试模式下构建时我无法运行它们并得到此错误 - "此应用程序无法运行你的电脑".来自同一版本的其他可执行文件(如clang-check.exe)不会显示此错误并正确运行.
似乎这可能是文件大小的问题,因为clang.exe和clang ++.exe的大小都超过2GB,而其他可执行文件较小但我的印象是64位Windows上的文件大小限制是4GB.
还有其他人遇到过类似的问题吗?如果文件大小有问题,是否可以让LLVM将调试符号放在单独的文件中以减小可执行文件的大小?
编辑:我试图通过在构建LLVM时使用-gsplit-dwarf标志将调试符号转储到单独的文件来减少可执行文件大小,但它没有任何效果.
我有一个小的C ++程序,需要一个大型2D数组。
int distanceArray[282][9900000];
Run Code Online (Sandbox Code Playgroud)
我知道,由于32位应用程序的上限为2GB,因此标准的32位控制台应用程序将无法为我的进程分配这么多的内存。但是,尽管事实是我已将编译器配置为使用本机amd64工具集,但在尝试构建应用程序时仍然遇到相同的错误:
Error C2148 total size of array must not exceed 0x7fffffff bytes
Run Code Online (Sandbox Code Playgroud)
我的系统上有16GB的RAM,因此我知道我的物理内存应该不是问题。如果我的计算正确,则此空间仅会占用大约3GB。但是,我不明白为什么我似乎无法使64位编译器正常工作。我遵循了Microsoft网站上概述如何使用64位编译器的指示,但是无论我做什么,我都会收到相同的错误。任何帮助将不胜感激。谢谢!
我知道以前曾问过这个问题,但现有的答案对我没有帮助。感谢您为帮助我发现问题所做的任何尝试。