背景 我们已经获得了一个在Visual Studio中构建为32位Windows应用程序的软件产品。我们希望将此应用程序移植到64位。
此代码的关键任务组件是一个黑盒静态库(.a文件),最初由第三方使用gFortran构建。原来的开发人员已经过世了,我们能够获得的Fortran源代码不完整,而不是该库构建的版本(并且包含编译库中不存在的关键错误)。他们没有使用VCS。
问题: 我想创建一个64位静态库,其代码在功能上等同于我们拥有的32位静态库。
我尝试过的事情:
答案 0 :(得分:9)
您可以保留32位二进制库,但将其加载到32位主机进程中,并使用某种IPC(共享内存,命名管道,本地环回网络连接等)来传输数据或从中传输数据你的64位进程。
这种方法的另一个优点是,如果Fortran代码崩溃,那么它只会关闭子主机进程,而不是你的主应用程序,你的程序可以立即重新启动它;如果它是一个单线程Fortran程序,那么你可以启动多个实例来实现多核并行。