問題タブ [ffi]
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.
c++ - c++ データ型を ffi で haskell にインポートする
私は C++ ライブラリの Haskell ラッパーを作成しています。ライブラリから Haskell プログラムに関数をインポートできる限り、C++ データ型をインポートする方法がわかりません。たとえば、 some.h ファイルで定義された video::E_DRIVER_TYPE EDT_OPENGL タイプをパラメーターとして受け取る関数があり、前に述べたように、 ffi を使用して関数をインポートする方法を知っています
海外輸入コール ...
適切なコンパイラマングル関数名を持つ
しかし、この特定のビデオ ドライバーのデータ型をインポート/使用する方法がわからないため、haskell から関数を呼び出すことができません。
さて、Haskell で型を作成できることはわかっていますが、C++ 表現が何であれ、その型を何から定義するかについての出発点が必要です。(この時点で迷っています)
どんな種類の助けにも感謝します!ありがとう
scheme - PltScheme FFI からの _bitmask の使用
これは plt-scheme ラッパー ライブラリの一部です。
問題は、ビットマスク (または列挙型) のフィールドにアクセスする方法がわかりません。たとえば、KeyPressMask 値を取得するにはどうすればよいですか?
external - %はOCamlの外部宣言で何を意味しますか?
OCaml 標準ライブラリの多くのexternal
宣言には、関数名の先頭に % があります。たとえば、次のように定義されていますint_of_float
。
「%」は何を意味しますか?
haskell - haskellで構造を「解凍」する方法
私は最近この問題に遭遇し、解決策を見つけましたが、より良い(またはより慣用的な)解決策があるかどうか疑問に思っています。
私は色の構造を持っています:
そして、実際にはカイロから、色成分を個別に渡したい関数があります。
setSourceRGB
したがって、をとらないので、このデータ構造を何らかの方法で「解凍」する必要がありRgb
ます。私は2つの方法を見つけました。Rgb
1つは、 :の内容を適用する関数を定義することです。
それから私はすることができます:
私が思いついたもう1つの方法は、ケースを使用してインラインラムダ式を実行することです。これは、別の関数を定義する必要がないことを意味します。
私はこれに完全に満足しているわけではありませんが、どういうわけか、いくつかの値を渡すためだけに関数を適用することは正しくないようです。私はそれを好転させてRgb
、の正しいタイプに「変換」できるようにしたいと思いsetSourceRGB
ます。残念ながら、機能を持つことは不可能だと私には思えます
に渡すことができますsetSourceRGB
。おそらくapplyRgb
最善の解決策ですが、それを次のように表現できるより良い方法があるかどうか疑問に思っています。
c++ - まともな C++ FFI によるハッキング可能なスキームの実装
私が試したのは、scheme48、chicken、gambit、clojure です。
読み取り可能 (実装自体) で、適切な C++ ffi と適切なデバッグ サポートを備えたスキームの実装を探しています (したがって、例外が発生した場合は、再帰的な repl にポップする必要があります)。
人々はどのような提案をしていますか?
java - Java内からHaskell関数を呼び出すための最良の方法
私はJavaプログラム内からHaskell関数を実行する効率的な方法を探しています。exec()を使用してGHCと対話することを検討しましたが、より良いメソッドがあるはずです。
erlang - erlang "erl_nif" 機能
私は主にポート ドライバーを介して Erlang とやり取りしてきましたが、erl_nif
機能の出現により、もうポート ドライバーに投資する必要があるかどうか疑問に思っています。
erl_nif
機能がブームになるか、それとも崩壊するFFI
か?
ruby - Ruby FFI Struct レイアウトの繰り返し
Rubyのacライブラリの関数にアクセスするために、本当に素晴らしいruby ffiライブラリを使用しています。
Ruby FFI::Struct のレイアウトを反復処理する方法はありますか?
FFI::構造体の例:
これは機能していないようですが、以下の疑似コードのようなものです:
c - 「外部関数インターフェイス」を使用して Go から C を呼び出す方法
Go の「外部関数インターフェイス」を使用して C 関数を呼び出すにはどうすればよいですか?
このインターフェイスはFAQで言及されていますが、ドキュメントの他の場所で言及されているのを確認できません。