问题标签 [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 回答
3994 浏览

c++ - 错误 LNK2019:无法解析的外部符号“extern”C”这是什么错误?

我试图将 cimg 库包装在 c++/clr 中,当我尝试构建它时,我得到了一堆链接错误。

Stdafx.h 中的源代码

0 投票
1 回答
1690 浏览

c++ - 通过 SWIG 从 C++ 调用 Go 回调函数

我正在尝试调用 C++ 函数:

来自 Go 代码。

我真的希望我只是将一个 Go 函数传递给该函数。我知道我可以将它包装到一个类中,并使用 %feature("director") 解决它,但这不是我的最佳解决方案。

从我在此页面中看到的内容来看,Go 中的函数指针应该与 C++ 中的相同,因此我尝试了以下 .swig 文件:

一开始我很惊讶它起作用了,但后来注意到它并不总是起作用:(。

例如,在这个 Go 代码中,它按预期工作:

但在其他情况下,它不起作用。例如,这里:

我实际上得到:

请注意它确实打印了“SUCCESS”,这意味着函数 DID 运行了,即使我将更复杂(和长)的代码放入这个函数中,它确实可以完美执行,但它没有回来:(。

请让我知道您的想法,以及如何解决这个问题。我不介意在 C++ 部分添加一些代码,但我真的希望 Go 部分看起来“干净”。

谢谢你。

0 投票
3 回答
2823 浏览

c# - HRESULT、DWORD 和 HANDLE 在非托管代码中是什么意思?

我正在阅读有关编组的内容。我很困惑,因为在非托管代码中这意味着什么。HRESULT、DWORD 和 HANDLE。原文是:

您已经知道托管和非托管环境之间没有这种兼容性。换句话说,.NET 不包含非托管代码领域中存在的 HRESULT、DWORD 和 HANDLE 类型。因此,如果需要,您需要找到一个 .NET 替代品或创建您自己的替代品。这就是所谓的编组。

0 投票
1 回答
629 浏览

c - 如何将 c 标头中定义的结构用于 fortran?

我有一个 *.H 定义一个结构。像这样:

在 void c 中,数据文件的所有参数都被赋值。我想将分配的值传递给主 fortran 程序,而不必使用 TYPE 重新定义。只需调用 *.H 和 iso_c_binding。换句话说,我希望在 fortran 主程序中使用已经在 *. H. 有人提出什么建议?

非常感谢!

0 投票
1 回答
590 浏览

c# - 我的 C#/C++ 互操作性中缺少入口点

我在我的程序上工作,这是我的学士工作(C#/C++ 互操作性)所需要的,并且我的代码中缺少入口点有问题...我尝试创建简单的数字生成器,它将在 C++ 类调用中生成数字C# ...起初我不知道如何通过课程,但后来我在此页面上找到了方法...请帮我修复它...

我添加了我的代码:

[C++]

[C#]

非常感谢!

0 投票
0 回答
194 浏览

c# - 将数据从自定义 webbrowser 项目发送到独立拥有的 java 脚本提示以实现自动化

这是我第一次作为提问者使用stackoverflow,所以就这样吧。

我正在尝试实施一个自动更新用于跟踪库存的第三方网站的工作项目。我已经想出了如何调用与调整库存相关的客户端javascript函数,但在我目前的消亡中,这个函数要求用户输入在处理数据之前对数据进行简单的计算和验证。我需要系统自动化,所以如果有人有像我这样的新手程序员可以轻松实现的任何想法,那就太好了。

目前,即使是像 sendKeys 这样的草率解决方案也可以满足我的需求。提前感谢您的时间和考虑!

最好的问候,本

Java脚本函数如下:

现在,我在 vs 中的代码非常短,到目前为止,我所发现的只是使用以下几行代码从我的 c# 代码中调用这个 java 函数......

这调用该函数很好,但会导致从 javascript 提示符调用中弹出一个窗口......我似乎无法找到如何从我的程序中将数据输入到该文本字段中。

更新.....

所以我发现我可以使用:

获得与我的网络浏览器中 java 触发的完全相同的提示。如果我可以拦截来自java的请求并将其转储到调用我的提示符中,我可以设置默认值并发送一个回车键以破解这个......但是如何拦截我的浏览器的java请求以获得提示?嗯……

大家好....更新....

经过数小时的搜索和烦恼……我离完成我需要做的事情只有一行代码。

这更新了服务器没有缺陷!感谢所有的帮助!:D

最好的问候,本

0 投票
1 回答
2273 浏览

c++ - 在派生类型中使用可分配的目标变量

我正在将 Fortran 代码与 C dll 绑定,并且我希望有一个可与 C 互操作的 Fortran 数组。我目前有以下子例程将 Fortran 数组与 C double* 绑定:

但是,我不喜欢当前代码的是我不断分配内存,并且在输入 C dll 时必须解包数组(部分原因是我不愿意使用SAVEon 属性In_X(:))。我宁愿 In_X在 Fortran 派生类型中声明一次。这导致了这篇文章的动机。在这个派生类型中:

我得到错误:

有没有办法消除这个错误?

0 投票
2 回答
1063 浏览

c++ - 互操作性如何工作

我知道许多大型应用程序(例如视频游戏)是使用多种语言创建的。例如,游戏/物理引擎很可能是用 C++ 编写的,而游戏任务、GUI 可能是用 Python 或 Lua 之类的东西编写的。

我理解为什么要进行这种角色划分;将低级语言用于需要极端优化、调整、效率和速度的任务,同时使用高级语言来加快生产时间,减少讨厌的错误等。

最近,我决定进行一个更大的个人项目,并希望将项目的部分内容与上述类似。在这个时间点,我真的很困惑语言之间的这种互操作性(尤其是编译与解释)是如何工作的。

当用 C/C++ 之类的东西编写时,我非常熟悉从 ANSCII 代码测试到加载可​​执行文件的细节。我很好奇像电子游戏这样由多种不同语言构建的东西是如何工作的。这是一个大/广泛的问题,但我特别感兴趣的是:

  • 代码级逻辑如何工作?即如何从 C++ 程序中调用 Python 代码?特别是因为它们不支持相同的内置类型?
  • 程序图像是什么样的?据我所知,视频游戏在单个进程中运行,那么运行调用 Python 函数的 C/C++ 程序时运行时映像是什么样的?
  • 如果从编译程序调用解释语言的代码,发生的事件顺序是什么?即如果我在我编译的可执行文件中,并且由于某种原因在循环中调用了解释语言,我是否必须在每次迭代时等待解释器?

实际上,我很难找到有关机器级别发生的事情的信息,因此我们将不胜感激。虽然我一般对软件的互操作性很好奇,但我对 C++ 和 Python 交互特别感兴趣。

非常感谢您的任何见解,即使它只是指向我可以找到更多信息的地方。

0 投票
1 回答
495 浏览

sockets - 语言互操作性中的套接字编程

我想知道支持基本网络功能(如套接字)的不同(高级/中级)语言(c/c++/java/c#)是否可以在不同平台上一起工作/通信?

是否有任何现有的项目(开放或其他)来实现它?

0 投票
1 回答
689 浏览

c++ - 从 Fortran 访问 C++ 结构数组?

在 C++ 中,我分配了一个 S 数组。在 Fortran 中,我想访问这个数组的元素。我怎样才能做到这一点?

C++:

Fortran 2003:

S 和 SFortran 现在应该可以互操作了,但我还需要有一种方法来访问在 C++ 中声明的数组的元素。我想让 Fortran 中的 SC(5)%a 对应于 C++ 中的 arrayOfS[4].a 。如何为将具有此访问权限的 Fortran 数组 SC 声明和设置正确的值?