問題タブ [vapi]
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.
header-files - 生成されたヘッダーがない Valac
私は2つのファイルを持っていclient.vala
ますlib.vapi
.
VAPI はクラス (通常は C コードと対話する) を定義します。
そしてclient.vala
クラスを使用します:
プログラムをコンパイルしようとすると、次のエラーが発生します。
コンパイラは、 の関数用に生成されたヘッダーを必要としているようですclient.vala
。
これはバグですか、それとも何か不足していますか?
vala - #define ポインター アドレスのバインディングを作成する
私のガイドとして、Vala マニュアルの優れた記事を参考にして、いくつかのカスタム vapi 定義を作成します。しかし、次のような C 関数のようなマクロを変換する方法がわかりません。
C コードは次のgpio
ように宣言します。
マクロINP_GPIO(g)
を void 関数として宣言する必要がありますか?
または以下のように代理人として?
VAPI ファイルの C コードから Vala 型を派生させる場合、どの条件に従う必要がありますか?
更新: 私は自分の valaIOT プロジェクトの作業を続けているため、以下の vapis はhttps://gitlab.com/gpaslanis/valaiot/tree/master/vapisで維持されています。サイトに推奨事項/修正を投稿してください。それらがお役に立てば幸いです。
vala - vapi でインスタンスを暗黙的に渡す
ライブラリの VAPI を作成しようとしていmongoc
ます。
いくつかの関数が関連付けられた構造体からいくつかのコンパクトなクラスを作成しました。たとえば、Client
次のようになります。
関連する関数の束もバインドする必要があります。次のように、それらをインスタンスメソッドとしてバインドしようとしました:
結果は次のようになります。
client
最初のパラメーターを呼び出し元のインスタンスとして取得したかったのです。これの代わりに:
私はこれを取得しようとしています:
this
、静的メソッド、およびその他の調整を使用してみinstance_pos
ましたが、そのように機能させる方法が見つかりませんでした。
Valaのパラメータとしてインスタンスを暗黙的に渡すことは可能ですか? その場合、インスタンスが冗長性なしで暗黙的に渡されるように VAPI をバインドするにはどうすればよいですか?
enums - VAPI バインディングで新しい列挙型を宣言する
VAPI ファイルで (C にバインドするのではなく) まったく新しい列挙型を宣言したいと思います。しかし、私が書くとき
値を使用しようとすると、Vala は既に宣言されている値を参照しようとし、C コンパイラのステップですぐにエラーになります。
Vala が宣言されていない値を参照するのではなく、新しい値を使用するようにするにはどうすればよいでしょうか?