1

到目前为止,我们的应用程序只使用了 32 位二进制文​​件,这已经足够了。慢慢地,我们看到需要为某些组件引入 64 位版本(除了 32 位版本),主要是为了与我们自己没有编写的其他 64 位组件进行交互。

出现的一个问题是,我们是否想将 64 位组件(EXE + DLL)命名为与 32 位组件相同的名称并将它们放在另一个目录中,或者是否要以不同的方式命名它们(例如tool.exe32 位和tool64.exe64 位)并将它们留在同一个目录。

对于大多数 Windows 组件 (WoW64),Microsoft 似乎已经走上了不同目录和相同名称的路线,如果整个应用程序是 64 位的,我们也可以只使用Program Filesvs.Program Files (x86)目录。

然而,在我们的例子中,我们有一个主要是 32 位的应用程序,它使用一些 64 位组件(可执行文件)来执行 64 位的东西,对于其中一些,我们也有一个 32 位版本也被使用。

那么,我们是重命名组件并将它们放在同一个二进制目录中,还是保持二进制名称相同并将其放在子目录中?

优缺点都有什么?

4

2 回答 2

1

如果我们谈论的是单个应用程序,那么它的所有文件都应该保存在一个目录中。含义,PF 或 PF(x86)。但不会四处传播。

关于组件,问问自己这个。 这些组件可以互换使用,还是并行使用?

如果是前者,那么让它们具有相同的名称,这将简化您的部署。但是,如果可能同时使用两者,例如,一个 DLL 由 32 位进程和您的 64 位帮助进程使用,则拆分名称。否则,您将需要拆分目录结构。

于 2013-06-14T15:06:18.143 回答
0

现在我必须链接到 64 位 boost 库 DLL。

Boost 64 位 DLL与其对应的 32位 DLL具有相同的名称,并且 Boost Build中没有内置方法来更改输出名称,如果您希望它们位于同一目录中,则会创建额外的工作。

环顾四周似乎Qt 在其 DLL 中不包含任何平台或位标记,如果您在同一目录中需要 32 位和 64 位,这将再次产生问题。

因此,看起来如果您的应用程序中有 3rd 方 DLL 依赖项,并且您需要同时安装 32 位和 64 位应用程序,那么,无论您如何命名可执行文件(或您的 DLL)本身,将它们到不同的目录中似乎是个好主意,因为这样就很容易使用不使用位数“标记”其 DLL 的 3rd 方的东西,因为实际上没有一种很好的方法可以从同一个文件中加载具有相同名称的不同 DLL目录(除非您将它们放入System32/ SysWOW64,否则您不应该这样做)。

于 2013-06-20T10:49:07.340 回答