我有一个 DLL(本机 32 位代码)的商业产品,现在是时候构建它的 64 位版本了。所以在 64 位 Windows 上安装时,32 位版本进入 Windows\SysWOW64,64 位版本进入... Windows\System32!(我在这里咬我的舌头......)或者DLL可以与客户端应用程序一起安装。
我应该如何命名 64 位 DLL?
与 32 位同名:两个文件执行相同的操作,具有相同的名称,但完全不可互换。这不是造成混乱和支持问题的秘诀吗?
不同的名称(例如 product.dll 和 product64.dll):现在客户端应用程序必须知道它们是运行 32 位还是 64 位才能引用我的 DLL,并且有些语言在运行之前不知道 -时间 - .NET 只是一个例子。现在所有静态编译的客户端都必须对导入声明进行条件化: IF target=WIN64 THEN import Blah from "product64.dll" ELSE import Blah from "product.dll" ENDIF
该产品包含大量 C 代码和大量 C++ - 将其移植到 C# 不是一种选择。
建议?建议?