首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >能给我一个跨平台的跨技术解决方案吗?

能给我一个跨平台的跨技术解决方案吗?
EN

Stack Overflow用户
提问于 2009-02-28 10:46:31
回答 3查看 420关注 0票数 3

我们有一个旧的应用程序,它具有从其他应用程序调用的FORTRAN。过了一段时间,他们为FORTRAN API.Then构建了一个(C)包装器,我现在正在为data构建一个带有少量数据处理的c++包装器。

因此,我在考虑如何构建一个可以从任何编程语言调用的

现在,我计划从我的c++ API中扩充RPC服务器。然后,任何使用任何编程语言的客户端都可以调用它。

我发现XML是一个很好的工具。但是它需要HTTP服务器来连接。

问题是调用我们API的应用程序是桌面applications.And,我发现XML不能操作复杂的对象。

SOAP是一个很好的解决方案吗?客户端能很容易地实现吗?

,那么,对于我的情况,最好的技术解决方案是什么?我应该使用哪种技术?

注释:我没有更改Fortran和C的权限。我需要c++ API,因为我正在向它添加新的方法,并增强代码,这样用户就可以轻松地调用这些方法。

诚挚的问候,

EN

回答 3

Stack Overflow用户

发布于 2009-02-28 11:35:13

任何合适的语言都有一个外接函数API。直接调用Fortran函数即可。编译器文档将告诉您如何在共享库中调用Fortran与在共享库中调用C非常相似,除非不同的编译器可能会将函数名规范化为小写或不小写,或者添加下划线。一些FFI可能需要一些C包装代码(例如Java ),但许多to只需要函数名和参数类型以及要加载的库的名称。

否则,您可以实现到Fortran的流接口(对标准输出的读和写),只需向它输入和从它输入--我在快速将交互式ISPF Fortran应用程序移植到PC上时就这样做了。

既然您希望公开C++ API和扩展,而不是Fortran,那么请看大口,只要C++不太复杂,它就会自动处理各种语言的过程。

票数 2
EN

Stack Overflow用户

发布于 2009-02-28 20:16:42

最好的方法是不使用它,只使用C。实际上,所有编程语言都可以直接调用can,因此没有理由创建包装器,除非特定语言的编程模型更有意义。

为了澄清我的意思,请看GTK+。它是一个C API,几乎可以在任何语言中使用。包装器存在于面向对象的语言中,这些语言为GTK+ API提供了一种纯面向对象的方法,因为考虑到API的域,对这些语言来说它是有意义的。

对应用程序来说对象化的接口有意义吗?如果没有,就没有理由费心地制作C++包装器了。

至于RPC,为什么一个简单的具有共享内存的消息传递接口还不够呢?

票数 2
EN

Stack Overflow用户

发布于 2009-02-28 13:32:05

SOAP、XML等通常用于计算机到计算机的通信,这是您想要的吗?还是这一切只是在一台计算机上运行?

如果它只在一台计算机上,只要坚持使用can,大多数系统都可以使用它

如果将can建模为REST样式的服务,则还可以为不能使用can但只有一个系统文档的应用程序提供HTTP服务

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/597849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档