Maw*_*awg 153 windows delphi 64-bit
我有一个客户端/服务器应用程序,我一直在一台PC上开发.现在它需要两个串口,所以我从朋友那里借了一台电脑.
当我构建我的应用程序并尝试运行或调试它时(无论是在Delphi IDE中还是从Windows文件管理器中),它出现错误"应用程序无法正确启动(0xc000007b)".
谷歌搜索没有带来多少,但似乎表明这不是特定于Delphi的其他应用程序.它似乎是由64位应用程序调用32位DLL引起的,反之亦然.
任何人都可以给我一个提示,如何跟踪这个?
mox*_*mox 129
首先,我建议使用dependency walker测试应用程序与其依赖项之间是否存在问题
Dav*_*nan 52
无法解决加载时间依赖性.调试它的最简单方法是使用Dependency Walker.使用"配置文件"选项可获取加载过程的诊断输出.这将确定故障点,并指导您找到解决方案.
导致此错误的最常见原因是尝试将64位DLL加载到32位进程中,反之亦然.
小智 12
这是一个失踪的DLL.可能,与com端口一起使用的dll具有未解析的dll依赖性.您可以使用依赖性walker和Windows调试器.例如,检查所有mfc库.此外,您可以使用nrCommlib - 它是使用COM端口的好组件.
unx*_*nut 12
我尝试了这里指定的所有东西,并找到了另一个答案.我不得不用32位DLL编译我的应用程序.我已经构建了32位和64 PATH
位的库,但我已经设置了64位库.在我重新编译我的应用程序之后(我的代码中也进行了一些更改)我遇到了这个可怕的错误并且挣扎了两天.最后,在尝试了许多其他的东西之后,我改变了我PATH
在64位DLL之前拥有32位DLL(它们具有相同的名称).它奏效了.我只是在这里添加完整性.
在前面的答案中已经提到过,使用依赖性walker是可行的方法,在我的情况下(我的应用程序一直在使用错误代码失败),依赖者walker显示了一些不相关的dll!
最后发现我可以通过转到"配置文件"菜单运行分析,它将运行应用程序并停在导致问题的确切dll!我发现一个32位的dll因路径而被修复并修复了它.
我在使用 Microsoft Visual Studio 2012 开发客户端-服务器应用程序时遇到了同样的问题。
如果您使用 Visual Studio 开发应用程序,则必须确保新的(即未开发该软件的计算机)具有适当的 Microsoft Visual C++ Redistributable Package。根据适当的情况,您需要 Visual C++ Redistributable Package 的正确年份和位版本(即 x86 用于 32 位,x64 用于 64 位)。
Visual C++ Redistributable Packages 安装运行使用 Visual Studio 构建的 C++ 应用程序所需的运行时组件。
这是Visual Studio 2015的Visual C++ Redistributable的链接。
您可以通过转到控制面板 -> 程序 -> 程序和功能来检查安装了哪些版本。
这是我得到这个错误并修复它的方法:
1) 我在我的电脑上使用 Visual Studio 2012 开发了一个 32 位应用程序。让我们称我的计算机为 ComputerA。
2) 我将 .exe 和相关文件安装在我们称为 ComputerB 的另一台计算机上。
3) 在 ComputerB 上,我运行 .exe 并收到错误消息。
4) 在 ComputerB 上,我查看了程序和功能,但没有看到 Visual C++ 2012 Redistributable (x64)。
5) 在 ComputerB 上,我搜索了 Visual C++ 2012 Redistributable 并选择并安装了 x64 版本。
6) 在ComputerB 上,我在ComputerB 上运行.exe 并没有收到错误消息。
我最近有一个问题,我正在开发一个应用程序(使用串行端口),它在我测试它的所有机器上工作,但有些人得到这个错误.
事实证明,发生错误的所有机器都在运行Win7 x64并且从未更新过.
运行Windows更新修复了我的特定情况下的所有计算机.