問題タブ [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.
java - JNA で AppData\LocalLow の場所を検出する
AppData\LocalLow
Windows 7 で JNA を使用して Java で作業の場所を検出しようとしていますが、その作業で使用できる最も近い関数は次のとおりです。
しかし、私の場合、JAVA + JNA、LocalLow GUID
withSHGetFolderPath
のみを使用するにはどうすればよいか、または別の角度から問題を検討する必要があるのではないかと考えています (ここでは JNI の方が良いのでしょうか?)
誰かがそれを手伝ってくれるなら、ありがとう
乾杯
編集: OK、SHGetKnownFolderPath を追加しましたが、ここでは、「?f」のような文字列を返し続けます。
}
haskell - 可変引数を持つ関数の Haskell FFI サポート
printf
HaskellのForeign Function Interfaceで可変引数(例:)を持つC関数を使用する例を誰かに教えてもらえますか?HaskellWiki を検索してみましたが、そのような例は見つかりませんでした。
ありがとう!
haskell - hsc2hs と c2hs の違いは?
hsc2hs と c2hs の違いは何ですか?
hsc2hs がプリプロセッサであることは知っていますが、正確には何をするのでしょうか?
また、c2hs は C コードから Haskell モジュールを作成できますが、これには hsc2hs が必要ですか?
c - OCaml から C バイナリ データを取得する
(議論のためにエンディアンを無視します - これは単なるテストケース/概念実証です - そして私はstrcpy
実際のコードでも決して使用しません!)
次の単純な C コードを考えてみましょう。
書き込むファイルは、ディスクから簡単に読み取ることができます。
例えば
私の質問は、OCaml で、私が持っているのは次のとおりです。
どうすればそのデータを取得できますか? Marshal
できない、できないinput_binary_int
。たとえば、 "what is " のような C のヘルパー関数を呼び出してsizeof(int)
、n バイトを取得し、C 関数を呼び出して "これらのバイトを int に変換" することはできますが、この場合、新しい C コードを追加することはできません。解凍」は、私が「すべき」と知っていることに基づいて、OCaml で行う必要があります。s のブロックで文字列を反復処理するか、sizeof
'\0' を探すだけの問題ですか、それとも賢い方法はありますか? ありがとう!
php - HaskellでPHP拡張機能を作成することは可能ですか?
HaskellでPHP拡張機能を作成することは可能ですか?
通常、PHP拡張機能はCを使用して記述されています。HaskellFFIを使用して、スタブC拡張機能の機能を提供できますか(または良いアイデアですら)?
そのようなアプローチの注意点は何ですか?Zendは、そのようなスキームを混乱させるような魔法をバックグラウンドで実行しますか?
haskell - hsc2hsを使用して定数、関数、およびデータ構造にバインドするにはどうすればよいですか?
hsc2hsの使用方法の例が必要です。次のようなヘッダーファイルを作成すると、次のようになります。
次に、次のようなhscファイルを作成します。
使用hsc2hs
:
私はそれを理解していません、私は帽子hsc2hsが私のために必要なすべてのものをインポートすると思いましたPI
誰が私にもっと良い例を与えることができますか?
haskell - ネットワークパッケージをインストールできません
ネットワークパッケージはすでにインストールされています。再インストールしようとすると(たとえば、cabal-devで使用するため)、コンパイルされません。私cabal unpack network
がそれを構築しようとすると、以下の出力が得られます。Ubuntuの依存関係をアップグレードしたため、これが壊れたと思います。私はUbuntu11.04にアップグレードしました。そうではありませんでした。また、物事が正しくリンクされる場合に備えて、libghc6-network-devをインストールしました。そうではありませんでした。私はghc-7.0.2を使用していて、ghc-7.0.3も試しました。現在、ソースから最新のhaskellプラットフォームをインストールしようとしています...助けていただければ幸いです-これは私のhaskellハッキングを完全に殺しています!
コマンドは:
これが私のgccバージョンです:
python - Pythonからprolog述語を呼び出す
私はいくつかの.pl
ファイルを持っていて、Pythonスクリプトからその中で宣言された述語を呼び出したいと思います。どうやってやるの?
例えば、test.pl
のように働く
rD
どういうわけかPythonスクリプトから呼び出して、結果変数で答えを取得したい
ps:これは単なる例であり、現在のPrologプログラムを書き直したくありません。
c++ - Haskell ByteString を C++ std::string に変換する
strictByteStrings
を Haskell から C++に変換して、FFIstd::string
経由で C++ ライブラリに渡したいと考えています。には文字が含まれている可能性があるため、中間ステップとしてに変換することは実行できません。ここで正しいアプローチは何ですか?ByteString
NULL
CString
現在のソリューション
これまでの回答に感謝します。そのタスクの標準的な解決策を望んでいましたが、まだ存在しない可能性があります:)
一部のC++ ライブラリ ドキュメントには、次のように記載されています。
文字列 ( const char * s, size_t n );
コンテンツは、s が指す文字配列の最初の n 文字で形成された文字列のコピーに初期化されます。
したがって、ByteString から一度コピーして std::string を構築するような関数を書くことができます。
それに付随する C++ コードはtoCCString_
、Neil と Alan が指摘したように見えます。
haskell - HaskellFFIを使用して構造体をマーシャリングします。また、FunPtrの使用方法
のffiについていくつか質問がありhaskell
ます。
まず第一に、私はでc構造体を操作しようとしていhaskell
ます。
そこにいくつか質問があります:私は次のような構造体を持っています
- いつ使用できますか
data Foo = Foo { a :: Int, b :: Float } deriving (Show, Eq)
- ピークアンドポークでストレージを実装する必要がある場合はどうなりますか?
さてさてについての質問FunPtr
FunPtr
のような通常の定義では不十分な理由をいつ使用するかわかりPtr CInt -> IO CInt
ませんか?