問題タブ [late-binding]

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 に答える
948 参照

c - 動的ローディングと遅延バインディングの類似点と相違点は何ですか?

ウィキペディアから:

動的ロードは、コンピュータープログラムが実行時にライブラリ(または他のバイナリ)をメモリにロードし、ライブラリに含まれる関数と変数のアドレスを取得し、それらの関数を実行するか、それらの変数にアクセスし、メモリからのライブラリ。

実行時バインディングは、オブジェクトに対して呼び出されているメソッドが実行時に名前で検索されるコンピュータープログラミングメカニズムです。


私の意見では、

類似点は、どちらも実行時にメソッドが検索されるメカニズムであるということです。

違いは、動的ロードでは実行時にライブラリをロードした後にリンカーを使用する必要はありませんが、遅延バインディングには常にリンカーが必要です。

私が正しいかどうか、特に違いの部分はわかりません。あなたの分析からもっと学びたいと思います。

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

.net - 遅延バインディング静的呼び出し-C#4.0

私の目標は、遅延バインディングコード(つまり、CallSitesとBinders)を生成するようにコンパイラーに指示しながら、インテリセンスを使用できるようにすることです。

私が持っていると言う

私が書きたい:

Dataプロパティの呼び出しをレイトバウンドにしたい。しかし現在、変数を動的として宣言しない場合provider、コンパイラーは呼び出しを事前にバインドします。つまり、実行時に、プロパティのバッキングフィールドに格納されている値が返されます。

同時に、コーディング中にインテリセンスが必要です。つまり、適切なタイプを使用してプロバイダーを宣言する必要があります。

両端を同時に達成する方法はありますか(実行時に動的バインディングに依存しながら、インテリセンスの静的宣言を使用します)?

編集1:なぜゲッターを使って必要なロジックを実行しないのか不思議に思うかもしれません。問題は、私がいくつかのメタクラスを開発しようとしていることです。これにより、開発者は、動的な手段で魔法が起こっている間に、クラスとプロパティを定義し、ゲッター、セッター、メソッドなどを使用できます。そのようなタイプはたくさんあるので、クラス自体にそのような冗長なコードを避けたいと思います。

編集2:コンパイラーにそのメンバーへのすべての呼び出しをレイトバウンドするように指示する属性を持つクラスを宣言できれば素晴らしいでしょう。

0 投票する
6 に答える
841 参照

c++ - コンパイラが仮想関数でアーリーバインディングとレイトバインディングのどちらを使用しているかを判断するにはどうすればよいですか?

私は次のコードを持っています:

コンパイラが最終的な関数呼び出しにアーリーバインディングとレイトバインディングのどちらを使用するかを決定するように求められました。私はオンラインで検索しましたが、私を助けるものは何も見つかりませんでした。誰かが私がこのタスクを実行する方法を教えてもらえますか?

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

c# - 遅延バインディングのパラメーターの型

この最終ステップに到達しました。ここで、正しく作成した"PasteAndFormat"メソッドを呼び出す必要objContentLateBindedがありますが、「WdRecoveryType.wdFormatOriginalFormatting」値をパラメーターとして渡す必要があります。WdRecoveryType は遅延バインドされたアセンブリの一部ですが"Microsoft.Office.Interop.Word"、コードで -parameters- の代わりに使用するにはどうすればよいですか?

問題の行は次のとおりです。

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

c# - (自動)依存性注入バインディングメカニズム

IOCコンテナなどを介して依存性注入バインディングを作成するための2つの一般的なメカニズムは、XML構成または命令型コードのブロックからのものです。これらの場合、キーと値のペアは明示的です(つまり、キー=要求されたタイプ、値=返されたタイプ)。

それでも、アプリケーション/ IOCコンテナに[IMyClass]キーのみが与えられ、コンテナが一連のアプリケーションアセンブリの依存関係を反映して、名前が一致するすべての具象クラス[MyClass]を見つける3番目の「ヒューリスティック」アプローチがあります。言い換えると、「リターンタイプ」の値は、宣言されるのではなく検出されます。

私が知りたいのは2つあります。

  1. どのIOCコンテナ(または他の遅延バインディングツール)がヒューリスティックアプローチを許可しますか?このアプローチには、より一般的な名前がありますか?
  2. 私がリストした3つ以外に、実際に使用されている他のバインディング手法はありますか?
0 投票する
2 に答える
301 参照

java - 静的変数をオーバーロードするには静的遅延バインディングが必要ですか?

私の友人は、Java で静的変数をオーバーライドできるかどうか私に尋ねました。私は、彼がそのような奇妙なコーディング方法について考えたことにショックを受けました。それから彼は、これは PHP で可能であると説明してくれました。私は、優れた開発者がそうするべき正当な理由があるかどうかを知りたいと思っています。私の意見では、静的メンバーはクラス メンバーとして特徴付けられ、オブジェクトとは関係がないため、クラスの派生とは関係ありませんが、彼は素朴で頑固なので、彼を納得させることはできません。

誰かがこの全体に対して良い議論をすることができますか、またはこれがクールな機能であることを私に納得させることができますか?

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

vb6 - 遅延バインドされた COM オブジェクトからイベントを使用するにはどうすればよいですか?

My.COMInterface処理が終了したときにイベントを発生させる遅延バインディング COM オブジェクト ( ) があります。VB6 コードからそのイベントを使用するにはどうすればよいですか?

事前バインディングを行う場合は、COM オブジェクトを WithEvents として宣言し、通常のイベント ハンドラーを記述します。遅延バインディングを使用してこれを達成するにはどうすればよいですか?

現在のコード:

現在私が知っている唯一の方法は、この MSDN 記事で説明されているように、イベントを処理する C/C++ ブリッジを作成することです。もっと簡単な方法を期待しています!

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

c# - C ++ DLLをC#に遅延バインディング-関数は常にtrueを返します

私はそのhファイルにこれを持っているDLLを持っています:

およびcファイル内:

C#では次のコードがあります:

奇妙な理由で、C ++の戻り値に関係なく、接続関数は常にtrueを返します。C#で呼び出し規約をStdCallに変更しようとしましたが、問題は解決しません。

何か案は?

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

c# - CからC#へのコールバックはしばらくすると例外を発生させます

見つけられないトリッキーなバグがあります。C#から作成したネイティブDLLへの遅延バインディングを実行しています。遅延バインディングは正常に機能しているようです。コールバックを追加した後、問題が発生しました。

コールバックは次のように定義されます(c)(DLLのグローバルスケールで):

この関数はエクスポートされます:

そして、これはネイティブ関数の実装です。

管理側では、関数はここで呼び出されます。

奇妙なことは-それはしばらくの間動作します。しばらくすると「特権命令」例外が発生しますが、STATUS_DELAYを下げると、発生が少なくなります。例外はIsEventSignaled関数に表示されます-しかし、そこには何もありません。

ダウンロードスレッドはc#GUIスレッドに同期して、GUIを更新します。

私はこの問題に長い間取り組んできました。これは古典的な呼び出し規約の問題のように見えますが、徹底的に検証しました。

何か案は?

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

c# - プライベートメンバーのレイトバウンド呼び出しはMethodAccessExceptionをスローします

コードを完全に信頼して実行しているのに、メソッドのレイトバウンド呼び出しがMethodAccessExceptionをスローするという厄介な状況があります。状況は次のとおりです。

慣例によりいくつかのイベント処理ロジックをマップする基本クラスがあります。これらのハンドラーは、次のチュートリアルに従って、ILコードを発行することによって作成された動的メソッドを使用して呼び出されます。http://www.codeproject.com/KB/cs/dynamicmethoddelegates.aspx

動的メソッドでプライベートメンバーを呼び出すことができないのはなぜですか?