我有一个我们正在尝试从 32 位迁移到 64 位的应用程序。它是 .NET,使用 x64 标志编译。但是,我们有大量用 FORTRAN 90 编写的 DLL,为 32 位编译。FORTRAN DLL 中的函数相当简单:你把数据放进去,你把数据拉出来;没有任何状态。我们也不会花很多时间在那里,总共可能 3%,但它执行的计算逻辑是无价的。
我可以以某种方式从 64 位代码调用 32 位 DLL 吗?MSDN 建议我不能,期间。我做了一些简单的黑客攻击并验证了这一点。一切都会抛出一个无效的入口点异常。到目前为止,我发现的唯一可能的解决方案是为所有 32 位 DLL 函数创建 COM+ 包装器并从 64 位进程调用 COM。这似乎很让人头疼。我们也可以在 WoW 仿真中运行该过程,但内存上限不会增加,上限约为 1.6gb。
有没有其他方法可以从 64 位 CLR 进程调用 32 位 DLL?