問題タブ [extending]

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

c - 動的にリンクされた共有ライブラリを拡張しますか?

私はCが初めてなので、知識が不足していて申し訳ありません(ここにある私のCブックは本当に大規模です:)

クローズド ソースで共有ライブラリ (libcustomer.so) を拡張したいと考えていますが、API は公開されています。

このようなことは可能ですか?

  1. libcustomer.so の名前を liboldcustomer.so に変更します
  2. 拡張共有ライブラリ libcustomer.so を作成します (したがって、他のユーザーは暗黙のうちに拡張ライブラリを使用します)
  3. -loldcustomer 経由で liboldcustomer.so を私の拡張 libcustomer.so にリンクします
  4. 余分に実装されていないメソッドを古い「liboldcustomer.so」に直接転送します

そのようには機能しないと思います (名前は .so にコンパイルされますよね?)。しかし、代替手段は何ですか?

#4の場合:これを行う一般的な方法はありますか、それとも古いメソッドのような名前のメソッドを作成して呼び出しを転送する必要がありますか(どのように?)?

元の libcustomer.so (=liboldcustomer.so) は時々変更される可能性があるため、すべてが動的に機能するはずです。

セキュリティ上の理由から、私たちのシステムには LD_PRELOAD がありません (それ以外の場合は :( )。

拡張された検証チェックといくつかのより良い NPE 処理について考えてみてください。

よろしくお願いします。

編集:

回答に示されているように拡張機能を実装しているだけですが、現時点では未処理のケースが 1 つあります。

拡張ライブラリから構造体を「プロキシ」するにはどうすればよいですか?

たとえば、私はこれを持っています:

customer.h:

customer.c:

今、customer-extension.c で、customer.c からすべてのパブリック メソッドを作成していますが、構造体を「パススルー」するにはどうすればよいでしょうか。

お時間とご協力ありがとうございます。

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

c - 共有ライブラリのパブリック メソッドを発見する

動的にリンクされた共有ライブラリを拡張することに加えて? クローズド ソースの共有ライブラリのすべてのパブリック メソッドのリストを取得する方法を知りたいです。

私が試してみました

しかし、戻り値の型、引数などの情報がありません。

この分野の初心者として、これらのメソッドのどれが自分のアプリケーションで呼び出せるかさえわかりません。

もっと便利なツールはありますか?

編集:

非常に単純な例として、次のものがあります。

libtest1.c:

次に、libtest1.c を libtest1.so にコンパイルしました。

私の「プログラム」(test.c)では、共有ライブラリを次のように使用します。

test.c をコンパイルしてテストします。

含める libtest1.h はありませんが、これは機能します。呼び出す libtest1() メソッドがある可能性があることを知っているため、「ちょうど」機能します。

libtest1.c をなくして、libtest1.so を手にしただけで、メソッドに何があり、どのパラメーターが必要かを覚えていないことを考えてみてください。

それはばかげた例です、私は知っています:)

または、他の例として(おそらくより良い):

システムのどこかに「libstone2goldconverter.so」を見つけたと仮定して、「なんてこった、私はそれを使うだろう」..しかしどうやって?

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

php - PHP 手動例外の例

だから私は例外の拡張に関するphpマニュアルを読んでいて、サンプルコードを読んでいました。次のコードに関する私の質問は次のとおりvar_dump($o)ですnull。クラスのコンストラクターがTestException例外をスローし、オブジェクトの完了を許可しないためですか? それが原因だとほぼ確信しています。

それにもかかわらず、ここに検査用のコードがあります:

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

php - コントローラプラグインを使用して、zendフレームワークの既存のレイアウトを拡張する

私は次のようなレイアウトファイルを持っています:

別のテンプレートで書かれたメニューシステムがあります

アクションメソッドの出力を$this->actionContentに配置し、そのすべてをレイアウトに配置する必要がありました。

次に、コントローラープラグインを次のように作成しました。

コントローラクラスで

したがって、メニューを必要としないアクションはどれでも、値「false」のパラメーター「menu」を渡すことができます。

私の質問は:これは正しい方法ですか?

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

android - Androidで文字列リソースのルックアップを拡張することは可能ですか?

標準の xml ファイルを使用してさまざまな言語で文字列値を提供する多言語アプリケーションがあります。

私がやりたいことは、Android の通常の動作をオーバーライドして、標準の xml ファイルを調べる前に別の場所でリソースを探すことです。

そのため、コードがgetResources().getString()を呼び出すと、カスタム コードは標準の getString 実装に戻る前に代替リソース ファイルを調べます。

これを達成する方法はありますか?

ありがとう!

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

javascript - 括弧のない関数呼び出しを使用した JavaScript 言語拡張 - 可能ですか?

どうしても、次のようなことをすることは可能ですか:

重要な部分は次の行です。

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

javascript - JavaScriptプロトタイプ拡張

Abstractオブジェクトを拡張しようとしています。

結果:

ItemBインスタンスでItemAのスコープを取得する特別な理由はありますか?どうすれば修正できますか?

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

android - Android SQLite:変数を別のアクティビティに転送するにはどうすればよいですか?

メイン.JAVA

MAINACTIVITY.JAVA

R.id.buttonsearch の場合:

TextEdit を取得し、searchtext に格納します。検索関数を実行して、そのクエリに一致するすべての行を返すには、MainActivity の検索テキストが必要です。Main の検索テキストを MainActivity にリンクするにはどうすればよいですか?

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

java - Creating a Deck Class extending Stack

first of all let me say that this is not so much a question of how to get it to work, it is more a question of whether this is good practice or not.

I want to implement a deck of cards (As seen in a lot of games, for example TCG games), with a custom shuffle() method... For now it uses a standard library method, but that may change in the future.

The code:

#xA;

Current code where I use it:

#xA;

Just wondering if this is good practice, eager to hear answers.