問題タブ [swig]

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 投票する
3 に答える
298 参照

c - C で DB ハンドルを開き、SWIG を使用して Perl に渡すにはどうすればよいですか?

SWIGインターフェースを書くのを手伝ってください。

C プログラムでデータベース接続ハンドルを開きたいです。このハンドルを Perl に渡す必要があります。Perl では、Perl DB インターフェイスを使用してデータベースと対話します。セキュリティ上の理由から、このメカニズムを使用したいと考えていました。SWIG インターフェイスを使用してデータベース ハンドルを渡したい。


追加

ビジネスのニーズに対応するため、Perl インフラストラクチャを使用しています。会社全体に分散しているユーザー アカウント (データベース サーバー) が多すぎます。ビジネス用パスワードを保護し、特権メンバーのみを許可したいと考えていました。前に、すべてのパスワードをテキスト ファイルに配置し、そこから読み取りました。他の場所に置いておけば、Perl モジュールをデバッグして見つけることができます。C でハンドルを作成し、パスワードを返す代わりに同じハンドルを指定すると、より便利になります。

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

python - Python から C++ lib を使用する方法

Python を使用してlibwpdと呼ばれる C++ ライブラリを呼び出して、Word Perfect ファイルを読み取り、そこから Python オブジェクトを構築する方法を知りたいのですが、C++の経験がなく、Python から C++ 関数を呼び出した経験がなく、理解できません。これらのライブラリ関数の出力がどうなるかを理解する方法。それは本当に2つの質問です:

  • 1) Python から C++ 関数を呼び出す方法、および
  • 2) これらの関数の出力、つまりWPDocument::parse関数 ( http://www.abisource.com/~uwog/libwpd/を参照 ) の結果がどうなるかを把握する方法と、その使用方法私のpythonコードで。関数はオブジェクトWPDResultを返すように見えますが、それが何をするのか、どのように使用するのかわかりません。
SWIG を簡単に調べたところ、有望に見えます。考え?

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

c++ - CでのLuaテーブルの追跡

私はC++オブジェクトを持っており、Luaオブジェクト/テーブルを持っています。(SWIG C ++バインディングもあります。)

私ができる必要があるのは、2つのオブジェクトを関連付けて、

それは同等のLuaを実行します:

これまでのところ、CObject::Updateには次のコードがあると想像できます。

使用するLuaテーブルをどのように保存/設定し // ???ますか?また、Update呼び出しを機能させるために上記で何をしますか?

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

python - MacPorts を使用した OpenCV 2.0 の SWIG Python バインディング

みんな、

私は OpenCV Python バインドを起こそうと 3 日間試みましたが、(完全な壮大な闘争はここに文書化されています)、macports 経由で swig をインストールした後に CMake で SWIG フラグをオンにしても、何も得られません。 SWIGアクション:(

私のcmakeコマンドは次のようになります:

このエラーを引き出します:

だから、私が持っているものが見つからないと思います:

それをどう伝えるか。のようなもので

???

Macports 経由で OSX 10.5.8、Python 2.6 を使用し、最新の OpenCV トランクをコンパイルしています。

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

c++ - SWIG への Python ctypes コールバック関数

関数ポインター (WNDPROC) を期待する SWIG C++ 関数があり、ctypes.WINFUNCTYPE によってラップされた Python 関数をそれに与えたいと考えています。

これは互換性があるはずですが、ctypes.WINFUNCTYPE 型が実際には WNDPROC であることを認識していないため、SWIG の型チェックは例外をスローします。

コールバックを SWIG に渡して理解させるにはどうすればよいですか?

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

python - CからPyBufferのコンテンツにアクセスする

私は次のようにPythonでバッファオブジェクトを作成しました:

byte_streamSWIGを介してC関数にパラメーターとして渡しています。次のようなデータを変換するためのタイプマップがあります。

バグがbyte_streamの実際のコンテンツ/値に到達できないいくつかの異なることを試しました。byte_streamC APIを使用してコンテンツを変換またはアクセスするにはどうすればよいですか?Cデータをバッファに変換する方法はたくさんありますが、逆の方法で見つけることはできません。このオブジェクトをgcbで調べてみましたが、どちらも、またはデータが含まれていることを示す値もありません。

(ファイルからデータを読み取るときにデータを文字列に変換するオーバーヘッドを回避したいので、バッファーを使用しています)Linuxでpython2.6を使用しています。

--ありがとうPavel

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

php - phpでcを接続するためのswigでコンパイルされたエラー

swig -php example.i

これにより、example_wrap.c、php_example.h、example.php の 3 つのファイルが生成されます。最初のファイル example_wrap.c には、PHP 拡張機能のビルドに必要なすべての C コードが含まれています。2 番目のファイル php_example.h には、拡張機能を php インタープリターに静的にリンクする場合に必要なヘッダー情報が含まれています。3 番目のファイル example.php は、PHP スクリプトで含めることができます。

3 つのファイルが作成されたら、次のコーディングを実行します。

これは、example.so ファイルの作成に使用されます。

非常に多くのエラーが表示されますが、

助けて..

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

python - Python で、SWIG によってラップされた uint16[3] 配列にアクセスする方法 (つまり、PySwigObject のラップを解除する) は?

これはPythonの質問です。私は変数Aを持っています

A によって参照されるインスタンスは連続配列 uint16[3] であり、問​​題は Python からその配列にアクセスすることです。

Python では、長さ 3 の変数 B を作成する方法を教えてください。これにより、A でラップされたポインターが指す同じメモリへの読み取り/書き込みアクセスが可能になります。

問題には次の 2 つの部分があると思います。

  1. A からポインターを取得する方法 (0x8c66fa0 は、ラップされたオブジェクトではなく、Swig オブジェクトを指していると思います)。
  2. メモリ ポインターと既知のデータ型を使用して、ある種の Python 配列を初期化する方法。(Numpy には frombuffer メソッドがありますが、必要と思われるのは frommemory メソッドです。) おそらく、いくつかのキャストが必要になるでしょう。

これは簡単だと思いますが、私は 1 日以上本を読んだりハッキングしたりしてきました!

2番目の部分を解決するには、例を次のように始めることができると思います:

次に、"0x8902f00" と "uint16" を使用して B (ベクター タイプに関係なく) を構築し、B[2] を変更すると C[2] が変更されるかどうかをテストします。

あなたの提案や明確な例に感謝します。

よろしく、

オーウェン

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

python - Pythonで逆アセンブル - 簡単な解決策はありませんか?

バイナリ(正確にはWindows exe)を逆アセンブルし、そのコードを分析するpythonスクリプトを作成しようとしています。特定のバッファーを取得し、その中の命令に関する情報を含むある種の構造体を抽出する機能が必要です。

以前に C で libdisasm を使用したことがありますが、そのインターフェイスは非常に直感的で快適であることがわかりました。問題は、その Python インターフェイスが SWIG を介してのみ利用可能であり、Windows で適切にコンパイルできないことです。

可用性の面では、diStorm はすぐに使える優れたインターフェイスを提供しますが、各命令のニーモニックのみを提供し、命令の種類とそうでないものを定義する列挙を含むバイナリ構造体は提供しません。これは私の目的にとっては非常に不快であり、私のニーズに合うようにインターフェイスをラップするのに多くの時間を費やす必要があります。

BeaEngine も調べました。これは、実際に必要な出力 (各命令に関するバイナリ情報を含む構造体) を提供しますが、そのインターフェイスは非常に奇妙で直感に反しており、間違った引数を指定するとすぐにクラッシュします。CTypes の一種の究極の死からあなたの Python へのクラッシュ。

そのため、djgcc や mingw をいじって SWIGed libdisasm を作成したり、diStorm の OOP ラッパーを作成したりするよりも少し時間がかかる他のソリューションについて聞いてみたいと思います。SWIGed libdisasm をコンパイルする方法、またはコンパイルされたバイナリ (pyd または dll+py) をコンパイルする方法について誰かがガイダンスを持っている場合は、ぜひ聞いてください。:)

ありがとうございます。

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

java - Java ネイティブ通信パフォーマンスの解釈

現在、Java ネイティブの通信に JNA を使用していますが、その単純さに満足しています。ただし、パフォーマンスを最適化する必要があり、他のバインディングの使用を検討しています。

私の質問はこれです: Java ネイティブ通信のどの部分が「高価な」部分ですか? それらの間のデータの受け渡しですか?

別の言い方をしましょう。現在、私の JNA インターフェイスが呼び出している関数は Java にデータをまったく渡さず、関数はそれほど頻繁には呼び出されません。つまり、Java がライブラリ呼び出しを呼び出すと、ライブラリ呼び出しはしばらくの間独自の処理を行い、プリミティブ型を返します。そのような状況では、JNI/Swig/etc は JNA よりも速くなりますか?