Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 可执行dll加载(x32、x64):选择正确的_Windows_Dll_64 Bit - Fatal编程技术网

Windows 可执行dll加载(x32、x64):选择正确的

Windows 可执行dll加载(x32、x64):选择正确的,windows,dll,64-bit,Windows,Dll,64 Bit,我有一个有几个第三方库的大型项目。我想为32位和64位体系结构构建一切。几个库创建共享库(DLL)。向我的项目中编译的可执行文件提供这些DLL的最佳方式是什么?我想我可以把所有这些DLL放到一个目录中,这个目录被添加到PATH变量中。但是,在32位和64位编译下,从第三方LIB创建的大多数DLL都以相同的方式命名,因此我不能将它们放在一个目录中。我可以创建两个目录吗?一个用于32位DLL,一个用于64位DLL,可执行文件选择正确的DLL? 或者你有更好的主意让我的可执行文件加载正确的DLL吗?

我有一个有几个第三方库的大型项目。我想为32位和64位体系结构构建一切。几个库创建共享库(DLL)。向我的项目中编译的可执行文件提供这些DLL的最佳方式是什么?我想我可以把所有这些DLL放到一个目录中,这个目录被添加到PATH变量中。但是,在32位和64位编译下,从第三方LIB创建的大多数DLL都以相同的方式命名,因此我不能将它们放在一个目录中。我可以创建两个目录吗?一个用于32位DLL,一个用于64位DLL,可执行文件选择正确的DLL? 或者你有更好的主意让我的可执行文件加载正确的DLL吗?
谢谢

目标系统要么是32位,要么是64位,决不能两者都是。您应该根据系统的性能只安装所需的版本。然后,您只需要两个不相交的二进制文件集,并安装目标系统所需的一个二进制文件集,就可以在运行时检测到要加载的内容。

目标系统是32位或64位的,而不是两者都是。您应该根据系统的性能只安装所需的版本。然后,您只需拥有两个不相交的二进制文件集,并安装目标系统所需的一个二进制文件集,就可以在运行时检测加载内容。

因为32位可执行文件无法拾取64位DLL,反之亦然。只有一个目录包含所有32位(可执行文件+DLL),另一个目录包含所有64位。

因为32位可执行文件不能拾取64位DLL,反之亦然。您只需要一个包含所有32位内容的目录(可执行文件+DLL)和另一个包含所有64位内容的目录。

实际上,对于WOW,64位系统也是32位系统。但是你有一个32位和64位的程序文件目录,所以仍然没有混合。是的,一个可执行文件的目标是32位或64位。但我希望能够在我们的开发机器上同时针对这两种体系结构(仅用于开发,而不是“客户计算机”)。我想最好在编译后将64位可执行文件复制到一个文件夹中,再将32位复制到另一个文件夹中。在几乎任何开发环境中设置它都很简单,它完全解决了问题。实际上,使用WOW,64位系统也是32位系统。但是,您有一个32位和64位程序文件目录,所以仍然没有混合。是的,可执行文件的目标是32位或64位。但我希望能够在我们的开发机器上同时针对这两种体系结构(仅用于开发,而不是“客户计算机”)。我想最好在编译后将64位可执行文件复制到一个文件夹中,再将32位复制到另一个文件夹中。在几乎任何开发环境中设置它都很简单,它完全解决了问题。