导入 c++使用 ffi 将数据类型转换为 haskell

发布于 2024-08-14 06:10:15 字数 398 浏览 8 评论 0原文

我正在为 C++ 库编写一个 Haskell 包装器,尽管我可以将函数从库导入到我的 Haskell 程序中,但我不知道如何导入 C++ 数据类型。例如,我有一个函数,它接受 some.h 文件中定义的 video::E_DRIVER_TYPE EDT_OPENGL 类型作为参数,正如我之前所说,我知道如何使用

foreign import ccall ...

使用适当的编译器 来使用 ffi 导入该函数-mangled 函数名称

,但我无法从 haskell 调用该函数,因为我无法弄清楚如何导入/使用这个特定的视频驱动程序数据类型。

现在,我知道您可以在 Haskell 中创建类型,但我仍然需要一个起点来将类型定义为任何 C++ 表示形式。 (我现在很困惑)

我将不胜感激任何形式的帮助!谢谢

I'm writing a haskell wrapper for a c++ library and as much as I can import functions from the library to my haskell program, I have no clue how to import c++ data types. For instance I have a function which takes as a parameter a video::E_DRIVER_TYPE EDT_OPENGL type defined in some.h file, and as I said before I know how to import the function with ffi using

foreign import ccall ...

with the appropriate compiler-mangled function name

but I'm not able to call the function from haskell because I can't figure out how to import/use this specific video driver data type.

Now, I know that you can create types in Haskell but still I need a starting point as to what to define the type to whatever the c++ representation is. (I'm confused at this point)

I would appreciate any kind of help! Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

回眸一遍 2024-08-21 06:10:15

从 Haskell 调用 C++ 是相当困难的; Haskell Wiki / Cxx 外部函数接口列出了一些选项。

Calling C++ from Haskell is quite difficult; Haskell Wiki / Cxx foreign function interface lists some options.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文