問題タブ [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.

0 投票する
2 に答える
1068 参照

java - JNA で AppData\LocalLow の場所を検出する

AppData\LocalLowWindows 7 で JNA を使用して Java で作業の場所を検出しようとしていますが、その作業で使用できる最も近い関数は次のとおりです。

ここにC#のソリューションがあります

しかし、私の場合、JAVA + JNA、LocalLow GUIDwithSHGetFolderPathのみを使用するにはどうすればよいか、または別の角度から問題を検討する必要があるのではないかと考えています (ここでは JNI の方が良いのでしょうか?)

誰かがそれを手伝ってくれるなら、ありがとう

乾杯

編集: OK、SHGetKnownFolderPath を追加しましたが、ここでは、「?f」のような文字列を返し続けます。

}

0 投票する
4 に答える
1105 参照

haskell - 可変引数を持つ関数の Haskell FFI サポート

printfHaskellのForeign Function Interfaceで可変引数(例:)を持つC関数を使用する例を誰かに教えてもらえますか?HaskellWiki を検索してみましたが、そのような例は見つかりませんでした。

ありがとう!

0 投票する
2 に答える
3557 参照

haskell - hsc2hs と c2hs の違いは?

hsc2hs と c2hs の違いは何ですか?

hsc2hs がプリプロセッサであることは知っていますが、正確には何をするのでしょうか?

また、c2hs は C コードから Haskell モジュールを作成できますが、これには hsc2hs が必要ですか?

0 投票する
4 に答える
1799 参照

c - OCaml から C バイナリ データを取得する

(議論のためにエンディアンを無視します - これは単なるテストケース/概念実証です - そして私はstrcpy実際のコードでも決して使用しません!)

次の単純な C コードを考えてみましょう。

書き込むファイルは、ディスクから簡単に読み取ることができます。

例えば

私の質問は、OCaml で、私が持っているのは次のとおりです。

どうすればそのデータを取得できますか? Marshalできない、できないinput_binary_int。たとえば、 "what is " のような C のヘルパー関数を呼び出してsizeof(int)、n バイトを取得し、C 関数を呼び出して "これらのバイトを int に変換" することはできますが、この場合、新しい C コードを追加することはできません。解凍」は、私が「すべき」と知っていることに基づいて、OCaml で行う必要があります。s のブロックで文字列を反復処理するか、sizeof'\0' を探すだけの問題ですか、それとも賢い方法はありますか? ありがとう!

0 投票する
2 に答える
1001 参照

php - HaskellでPHP拡張機能を作成することは可能ですか?

HaskellでPHP拡張機能を作成することは可能ですか?

通常、PHP拡張機能はCを使用して記述されています。HaskellFFIを使用して、スタブC拡張機能の機能を提供できますか(または良いアイデアですら)?

そのようなアプローチの注意点は何ですか?Zendは、そのようなスキームを混乱させるような魔法をバックグラウンドで実行しますか?

0 投票する
2 に答える
2278 参照

haskell - hsc2hsを使用して定数、関数、およびデータ構造にバインドするにはどうすればよいですか?

hsc2hsの使用方法の例が必要です。次のようなヘッダーファイルを作成すると、次のようになります。

次に、次のようなhscファイルを作成します。

使用hsc2hs

私はそれを理解していません、私は帽子hsc2hsが私のために必要なすべてのものをインポートすると思いましたPI

誰が私にもっと良い例を与えることができますか?

0 投票する
2 に答える
495 参照

haskell - ネットワークパッケージをインストールできません

ネットワークパッケージはすでにインストールされています。再インストールしようとすると(たとえば、cabal-devで使用するため)、コンパイルされません。私cabal unpack networkがそれを構築しようとすると、以下の出力が得られます。Ubuntuの依存関係をアップグレードしたため、これが壊れたと思います。私はUbuntu11.04にアップグレードしました。そうではありませんでした。また、物事が正しくリンクされる場合に備えて、libghc6-network-devをインストールしました。そうではありませんでした。私はghc-7.0.2を使用していて、ghc-7.0.3も試しました。現在、ソースから最新のhaskellプラットフォームをインストールしようとしています...助けていただければ幸いです-これは私のhaskellハッキングを完全に殺しています!

コマンドは:



これが私のgccバージョンです:

0 投票する
4 に答える
6791 参照

python - Pythonからprolog述語を呼び出す

私はいくつかの.plファイルを持っていて、Pythonスクリプトからその中で宣言された述語を呼び出したいと思います。どうやってやるの?

例えば、test.pl

のように働く

rDどういうわけかPythonスクリプトから呼び出して、結果変数で答えを取得したい

ps:これは単なる例であり、現在のPrologプログラムを書き直したくありません。

0 投票する
3 に答える
1261 参照

c++ - Haskell ByteString を C++ std::string に変換する

strictByteStringsを Haskell から C++に変換して、FFIstd::string経由で C++ ライブラリに渡したいと考えています。には文字が含まれている可能性があるため、中間ステップとしてに変換することは実行できません。ここで正しいアプローチは何ですか?ByteStringNULLCString

現在のソリューション

これまでの回答に感謝します。そのタスクの標準的な解決策を望んでいましたが、まだ存在しない可能性があります:)

一部のC++ ライブラリ ドキュメントには、次のように記載されています。

文字列 ( const char * s, size_t n );

コンテンツは、s が指す文字配列の最初の n 文字で形成された文字列のコピーに初期化されます。

したがって、ByteString から一度コピーして std::string を構築するような関数を書くことができます。

それに付随する C++ コードはtoCCString_、Neil と Alan が指摘したように見えます。

0 投票する
1 に答える
938 参照

haskell - HaskellFFIを使用して構造体をマーシャリングします。また、FunPtrの使用方法

のffiについていくつか質問がありhaskellます。

まず第一に、私はでc構造体を操作しようとしていhaskellます。

そこにいくつか質問があります:私は次のような構造体を持っています

  1. いつ使用できますかdata Foo = Foo { a :: Int, b :: Float } deriving (Show, Eq)
  2. ピークアンドポークでストレージを実装する必要がある場合はどうなりますか?

さてさてについての質問FunPtr

  • FunPtrのような通常の定義では不十分な理由をいつ使用するかわかりPtr CInt -> IO CIntませんか?