gpt4 book ai didi

interop - 多种语言如何在一个项目中交互?

转载 作者:行者123 更新时间:2023-12-02 05:49:43 25 4
gpt4 key购买 nike

我听说有些人在一个项目中使用多种语言进行编程。我无法想象这些语言如何相互作用。

我的意思是没有像这样的Java方法

myProgram.callCfunction(parameters);

从来没有发生过,还是我错了?

最佳答案

在一个项目中使用多种语言实际上很常见,但背后的原理并不总是简单。

在简单的情况下,不同的语言被编译为相同的代码。例如,C 和 C++ 代码通常编译为机器汇编程序或 C#,而 VB.Net 则编译为 IL(.NET 运行时理解的语言)。

如果语言/编译器使用不同的类型系统,事情就会变得更加困难。可以有很多不同的方式,基本数据类型如整数、 float 和 double 在内部表示,甚至还有更多的方式来表示字符串。当在不同语言之间传递类型时,必须确保双方对类型的解释相同,或者 - 如果不是 - 类型被正确映射。这种类型映射也称为 marshalling .

不同程序语言之间互操作性的经典示例是(主要来自 Windows 世界):

  • 可用于 .NET 平台的各种语言。其中包括 C#、VB.Net、J#、IronRuby、F#、XSLT 和许多其他不太流行的语言。
  • 用 C++ 或 VB 编写的 native COM 组件可以与多种语言一起使用:VBScript、VB、所有 .NET 语言、Java
  • 可以从.NET或VB调用Win32 api函数
  • IPC(进程间通信)
  • Corba ,可能是最全面(也是最复杂)的方法
  • 网络服务和其他面向服务的架构,可能是最现代的方法

关于interop - 多种语言如何在一个项目中交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/636841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com