目前我有一个用C#编写的应用程序。在内部我正在使用另一个第三方dll,它也是用C#编写的,并在32位Windows中编译。第三方dll将在64位窗口中发布,最终我必须使用这个新的dll。但我现在不想迁移到64位操作系统。
我的问题:这个新的dll会影响我现有的代码吗?如果是,那么我需要如何以及进行哪些更改以适应此功能。
答案 0 :(得分:3)
我很确定你不能在32位Windows中使用64位DLL。
您可以使用诸如Thunking之类的技巧或像WoW64这样的32位子系统来实现其他方式,但是您并不支持32位版本中的64位代码。
希望您的第三方将继续提供他们的DLL的32位版本,因此您不必担心它。如果没有,并且你想要升级,那么你也需要64位。
答案 1 :(得分:2)
如果第三方库是C#库,则 应编译为AnyCPU。 (请与作者确认一下。)
如果 编译为AnyCPU,那么如果你从32位程序使用它,它将作为32位运行,如果你从64位程序使用它,它将运行为64位。
否则,您需要更改自己的程序以匹配DLL。但是,如果他们没有将它设置为AnyCPU,我会向他们抱怨......或者找出他们的动机是什么(可能是使用非托管DLL)。