在 64 位操作系统上运行 32 位软件时出现运行时错误 52

在 64 位操作系统上运行 32 位软件时出现运行时错误 52

我有 32 位设计的键盘/打字软件,想在 64 位 Windows 7 上运行它。我目前正在运行时错误 52 - 文件名或编号错误每当我尝试运行该软件时。

是否有可以让我按原样运行 32 位软件的下载或流程?

答案1

您无法借助任何软件将 32 位软件转换为 64 位。但您也不需要转换,因为 64 位架构支持所有 32 位软件。

考虑 32 位和 64 位数据模型之间的差异 32 位和 64 位编译环境之间的最大差异是数据类型模型的变化。32 位应用程序的 C 数据类型模型是 ILP32 模型,之所以这样命名是因为 int 和 long 类型以及指针是 32 位数据类型。64 位应用程序的数据类型模型是 LP64 数据模型,之所以这样命名是因为 long 和指针类型增长到 64 位。其余的 C 整数类型和浮点类型在这两种数据类型模型中是相同的。

将 32 位应用程序转换为 64 位应用程序:问题

将 32 位应用程序转换为 64 位应用程序时出现问题的主要原因是 int 类型相对于 long 和指针类型的大小发生变化。将 32 位程序转换为 64 位程序时,只有 long 类型和指针类型的大小从 32 位变为 64 位;int 类型的整数大小仍为 32 位。将指针或 long 类型分配给 int 类型时,这可能会导致数据截断问题。此外,将使用比 int 大小短的类型表达式分配给无符号 long 或指针时,可能会出现符号扩展问题。

欲了解更多信息,请访问此处。来源:http://www.oracle.com/technetwork/server-storage/solaris/ilp32tolp64issues-137107.html
本文告诉您如何通过更改代码进行转换,
摘自:https://www.quora.com/How-do-I-convert-a-32-bit-software-into-a-64-bit

据我了解,您必须按照上述步骤通过更改变量类型来修改源代码。另外,我在 Google 上搜索到您遇到的错误可能与转换无关。

相关内容