1

If an application is built on a 32-bit machine, when run on a 64-bit machine, how does it know the .dll is in C:\Program Files (x86) instead of C:\Program Files or it doesn't?

ERROR SUMMARY
[SCRIPT]: File not found: C:\Program Files\Common Files...\abc.dll.

However, in my 64-bit machine, abc.dll is in C:\Program Files (x86)\Common Files...\abc.dll

If it doesn't, where do I adjust the path because apparently it's not in the application's code.

4

2 回答 2

0

首先,您可以在任一方向进行交叉编译,因此在 32 位机器上构建并不一定意味着什么。这确实是在 64 位机器上运行 32 位代码的问题。在这种情况下,64 位安装上有一个 32 位仿真层,称为Wow64。其中一部分是文件系统重定向,它重定向来自 32 位程序的文件系统请求。在这种情况下,尝试从 32 位代码访问“C:\Program Files”将透明地重定向到“C:\Program Files (x86)”。

于 2013-08-27T19:00:09.513 回答
0

不是吗?

默认搜索路径的任何部分都不会检查任何地方,Program Files除非Program Files (x86) 是因为应用程序的目录位于这些文件夹之一下。

如果您从 32 位应用程序中收到该错误,则说明设置异常(例如覆盖 下的默认安装位置Program Files (x86))。

于 2013-08-27T19:00:09.557 回答