问题标签 [language-interoperability]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
187 浏览

c# - C# 包装器到 C++ 函数 - 运行一次,工作正常。运行两次,程序挂起

所以我正在使用 ac# 包装器到 C++ 库,并尝试添加另一个函数。我已经在 C# 中创建了函数声明并且它正在工作。但它只工作一次。当我第二次尝试运行它时,程序挂起。

互操作定义和声明位于https://github.com/joshglenn/interception-cs/blob/master/kchordr/Program.cs

我正在运行的代码在这里:https ://github.com/joshglenn/interception-cs/blob/master/kchordr/InterceptionDemoForm.cs

第一次运行良好但在第二次启动时挂起的函数是 GetHardwareID()。

我的问题是,我该如何解决这个问题?这似乎是内存泄漏?

0 投票
1 回答
671 浏览

c# - 在 C# 项目中使用 C++ API

是否可以在 C# 项目中使用 C++ API(一系列头文件和 CPP 文件)?

也许可以将这些文件编译成.obj.lib文件并将它们包含在 Visual C# 项目中?类似的事情已经完成Crypto++

如果可能的话,这样做有什么缺点吗?

上下文和导入信息:

  • C++ API 称为 NWCreate,由 Autodesk Navisworks 开发
  • 我正在使用 Microsoft Visual Studio C# 2010
  • 我们在 C# 中拥有一个庞大的现有代码库,其中我们将在 navisworks 插件中执行的大部分操作已经用 C# 编码(来自我们制作的其他 Autodesk 项目)。因此,必须在 C++ 中重写所有这些操作在很大程度上是在重新发明轮子。
0 投票
2 回答
262 浏览

gcc - gcc 4.8.1 在 ubuntu 12.04 中将 .c 文件编译为 c++

我的一个用户在尝试使用 gcc 4.8.1 在 ubuntu 12.04 上编译我们的混合 C/C++ 代码库的 C 部分时收到错误消息

我们有一个 C++ 库,其中包含一些 C 链接函数,并且想要编译一个链接到它的 C 程序。该库是用 g++ 编译的并且构建良好。c 程序失败如下:

该程序有一个小写的 .c 文件后缀,那么为什么 gcc 会尝试将其编译为 c++ 呢?我们还没有在其他操作系统上看到这一点。

(我知道我们可以通过删除 -Werror 或使用 -xc 处理这个特定文件来解决问题,但我想解决真正的问题。)

0 投票
1 回答
880 浏览

objective-c - 如何将一个以闭包作为参数的函数桥接到 objc

我有

在我的(快速)框架中

将其暴露为

在我的框架伞头中

试图这样称呼它

在目标 c 示例代码中导致链接错误:架构 arm64 的未定义符号:“_verifyEmail”,引用自:-[ObjCExample verify] 在 ObjCExample.o ld 中:未找到架构 arm64 的符号

与导出的其他函数相同,但如果我可以将闭包映射到块或其他任何东西,我肯定会修复其余的 :^)

已解决:将全局变量转换为类 func()s

0 投票
1 回答
90 浏览

objective-c - 如何从 swift 代码中获得有用的 objc 枚举打印输出?

产生“验证电子邮件 foo@bar 返回(枚举值)”(这显然没有实际用途)。这个:

不编译

VerifyEmailViewController.swift:22:21: 'YOIDCVerificationStatus' 不能转换为 'CShort'

即使枚举是这样声明的:

0 投票
1 回答
86 浏览

c# - 从非 Microsoft 客户端访问 WCF 服务回调

WCF 应该是可互操作的,可以从微软和非微软客户端访问 WCF 服务,但只有微软客户端可以访问 WCF 回调服务。问题是:非微软客户端是否可以访问 WCF 回调服务?有没有办法在微软服务和非微软客户端之间建立一个活跃的双向通道?

0 投票
2 回答
695 浏览

java - 如何在 Java 中运行 C 代码

我发现 Java 是一种优秀的高级语言,但它缺乏其创始语言 C 的速度和灵活性。

看到 Android 操作系统是用 C 和 Java 编写的,这两种语言似乎很可能相互补充。

如何将 C 代码导入 Java 程序?

PS。如果您知道如何在 Android 操作系统上执行此操作,则可以加分。

0 投票
2 回答
149 浏览

python - 如何同时将 Python 与 C 和 Java 一起使用?

编辑<<<<<<<
问题是:

- 你如何从 python 启动 C 代码?(比如说,在一个函数中)
- 如何将 Java 代码加载到 python 中?(也许在课堂上?) -
你可以简单地在 python 程序中使用这两个,还是有特殊的考虑?
- 值得吗,还是集成会导致太多延迟?

熟悉所有三种语言(C、Java 和 Python)并知道 Python 支持 C 库(并且显然也可以与 Java 集成)我想知道 Python 是否可以集成使用这两种语言的程序?

我想要的是快速灵活的 C 函数,同时利用 Java 广泛的前端库并在 Python 干净、可读的语法中协调这两者。

这可能吗?

EDIT----> 更具体地说,我想编写和执行集成了我自己的快速 C 函数的 python 代码。然后,调用类似 swing 的 Java 库来创建用户界面和处理网络。可能还利用 XML 来帮助文件操作。

0 投票
2 回答
952 浏览

java - 平台无关的 Java <-> C# 互操作性

我们想在我们的 Java 项目中使用现有的 C# 源代码。到目前为止,这不会是一个大问题,因为使用例如 Java 本地接口 (JNI) 非常简单。问题是该软件也应在非 Windows 操作系统上运行。因此,我们可以使用 Mono 编译 C# 源代码,以使它们在例如 Linux 上可执行。但是 Java 内部的集成又如何呢?JNI 或任何基于 COM 的 C# <-> Java 互操作性解决方案都依赖于操作系统,并且仅适用于例如 Windows。

一种可能的解决方案是实施 Web 服务。有没有人知道如何解决这个问题?我将非常感谢其他建议!

非常感谢!

问候

0 投票
1 回答
692 浏览

c++ - GNU Fortran 和 C 互操作性

我有一个大型的混合 C/Fortran 代码库,目前在 Windows 上使用英特尔工具编译。我被要求将它移植到 Linux 上的 GNU 工具。或多或少随机,我选择了 4.8 版。

从 Fortran 调用 C 函数时,互操作性通常如下所示:

英特尔 Fortran 编译器始终生成大写符号,因此可以正常工作。但是 GNU Fortran 编译器总是生成小写符号,因此存在链接器错误。

GNU Fortran 编译器曾经有一个名为的选项-fcase-upper,它可以生成大写符号,但似乎这对每个人来说都太可配置了,它已被删除(我不确定何时)。

可以使用该ISO_C_BINDING工具强制编译器生成区分大小写的名称:

这解决了链接器错误,但它改变了字符串参数的处理方式;不再提供长度参数。因此,要使用这种方法,我不仅需要为当前以这种方式工作的每个函数添加接口定义,而且我还必须更改在每次调用此类函数时处理字符串的方式,确保所有字符串是空终止的。

我可以将所有这些函数设为小写,但英特尔编译器当然仍会生成大写符号,这样会破坏现有的构建。

由于有大约 2,000 个这样的功能,这似乎是一个不可行的工作量。所以,我的问题是:如何在不更改函数调用语义和不破坏使用英特尔编译器的现有构建的情况下解决链接错误?