【发布时间】:2018-05-22 12:59:32
【问题描述】:
我用 C++ 编写了一个带有服务器和客户端的 TCPIP-Socket-Connection,它在 VisualStudio 中工作得很好。现在我想通过 MEX 文件在 MATLAB/Simulink 中使用 C++ - 客户端,然后在 S-Function 中使用。 我发现了两个关于 MEX-Files 的描述。
- C++ MEX File Application 仅适用于 C++
- C/C++ MEX FilesC/C++
现在我很困惑,该拿哪一个。我用第二个写了一些简单的程序,但总是遇到数据类型的问题。我认为,这是因为给定的示例和函数仅适用于 C 而不是 C++。
感谢您的帮助!非常感谢!
【问题讨论】:
-
取决于你想要 C 还是 C++,没有其他谜团。请注意,它与 MATLAB 基本相同。您可以只使用 C++,也可以使用 C/C++ 或更多类似 C 的代码。
-
我没用过C。我想用C++。是否可以同时使用两者来编写c++?
-
是的,C++ 支持几乎所有的 C 代码。
-
请注意,C 接口不需要 C 编译器。这与调用函数的方式有关。在 C++ 中,您可以在函数声明中使用
extern C来告诉编译器调用函数,就好像它是 C 函数一样。您也可以使用许多其他编程语言的 C 接口。 -
"... 你可以在函数声明中使用 extern C 来告诉编译器调用一个函数,就好像它是一个 C 函数..." 注意这是已经在 mex.h 等头文件中为您完成。您不必手动将其添加到您的 mex 源代码中。