我有一个应用程序,我们正在尝试将其从32位迁移到64位。它是使用x64标志编译的.NET。然而,我们有大量用Fortran 90编写并为32位编译的DLL。Fortran DLL中的函数非常简单:您放入数据,您取出数据;没有任何状态。我们也不会在那里花费很多时间,总共可能只有3%,但它执行的计算逻辑是非常有价值的。
我能否以某种方式从64位代码调用32位DLL?MSDN建议我根本不行。我已经进行了一些简单的黑客攻击并进行了验证。所有内容都会抛出无效的入口点异常。目前我找到的唯一可能的解决方案是为所有32位DLL函数创建COM+包装器,并从64位进程调用COM。这似乎很麻烦。我们也可以在WoW仿真中运行进程,但是内存上限不会增加,仅限于约1.6 GB。
是否有其他方法从64位CLR进程调用32位DLL?