問題タブ [early-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.
vba - 実行時バインディングを使用してライブラリを使用する前に、実行時バインディングを使用してライブラリの存在を確認できますか?
開発中のメソッド名などのオートコンプリートが好きなので、VBAプロジェクトでアーリーバインディングを使用するのが好きです。また、メソッド名のスペルを間違えた場合にコンパイラーが警告を表示するという自信も気に入っています。
ただし、早期バインディングを使用するには、関連するライブラリ(たとえば、「Microsoft ScriptingRuntime」)への参照を追加する必要があります。これは、そのような「標準」ライブラリには問題ありませんが、ユーザーのマシンに存在する場合と存在しない場合があるライブラリを使用したい場合があります。
理想的には、ライブラリが存在しない場合(「xyzがこのコンピューターにインストールされていないため、この機能を使用できない」など)に役立つメッセージを表示したいと思います。遅延バインディングのみを使用している場合は、次のことができます。
ただし、アーリーバインディングを使用するためにライブラリへの参照を追加した場合、ライブラリが存在しないと、VBAプロジェクトの読み込み時にコンパイルエラーが発生します。したがって、どのコードも実行されません(ライブラリが存在しないことを検出するコードを含む)。
このキャッチ22を回避する方法はありますか?
vb.net - .NET で作成された COM クラスへの VBA オブジェクト変数の早期バインドを有効にする方法
COM クラス ライブラリ (.NET ベース) で早期バインディングをサポートするのに問題があるようです。
Office 2003 VBA (および後で Office 2010) で使用するために、VB.NET 2003 でクラス ライブラリを作成しています。ドキュメンテーション @ StackOverflow および他の場所で、このコードにたどり着きました。
ソリューションは、COM Interop でコンパイルするように設定されています。正常にビルドされ、ProgID が VBA の参照リストに表示されます。
これを VBA で使用するには、適切な参照を設定してから、適切な型の変数を宣言し、クラスをインスタンス化します。ここが神秘的なところです。
そのため、ライブラリを参照し、適切な型のオブジェクト変数を宣言し、クラスをインスタンス化できますが、インスタンス化されたオブジェクト参照を型付き変数に割り当てることはできず、Object 型の変数にのみ割り当てることができます。また、New キーワードのインスタンス化はサポートされているように見えますが (Intellisense はライブラリとクラスをオプションとして提供しています)、実行時に失敗します。
VB.NET コードまたはビルド設定に欠けているものは何ですか? 事前バインディングが機能しません。
PS: 私の問題を別の言い方をすれば、この StackOverflow スレッドで解決策を試してみたところ、AnthonyWJones が言っていることがわかりました。
dll を参照して、事前バインディングを使用することもできます。
私の場合は真実ではありません... :-(
c# - CRM 取得エンティティ - エラー: タイプ 'Microsoft.Xrm.Sdk.Entity' のオブジェクトをタイプ 'CRMEntities.List' にキャストできません
次のように CRM からエンティティを生成しました。
serviceContextNameにはXrmServiceContextを設定しました。次のコードを使用して CRM からいくつかのエンティティを取得したい:
そして、私はエラーが発生しています:
「ウォッチに追加」した後、コンテキスト内のエンティティのすべてのセットに同じメッセージがあることがわかりました。私は何を逃したのですか?
java - 実際のオブジェクトが実行時に決定される場合、コンパイル時に事前バインディングが解決されるのはなぜですか?
関数が呼び出されると、実行時にすべてのオブジェクトが作成されることを知っています。
バインドとは、クラス内でメソッド データ メンバーをバインドすることです。
事前バインディングは、コンパイル時にすべてのメソッド インスタンス変数をバインドします。すべてのオブジェクトは実行時に作成されるため、実行時にすべてのメソッド データ メンバーもバインドする必要があると考えました。
アーリーバインディングで、オブジェクトメソッドの呼び出しがコンパイル時に決定されるのはなぜですか? そのオブジェクトが実行時に作成された場合。
例えば。
foo() はコンパイル時に解決されましたが、aInstance は実行時に決定されます。
c# - 同じ C# .net 3.5 アプリで早期バインディングと遅延バインディングの両方を使用することは有害ですか?
一部の SVN 作業コピー上の 1 人のユーザーのマシンの場合に Word COM 参照 (および他の COM 参照も同様) が認識されず、場合によってはデバッグのみであるという、断続的/一貫性のない問題が発生しています。これらの失敗の場合、ビルドは失敗し、「resolvecomreference タスクが予期せず失敗しました」というエラーが表示されます。VS2008 では、参照リスト内のそのような項目ごとに黄色の三角形の警告感嘆符が表示されるため、これは予期しないことではありません。
これに関する多くの記事を読みましたが、疑問が生じました。私たちのアプリは、MSO (Microsoft Office) への呼び出しに、事前バインディングと遅延バインディングを組み合わせて使用します。それは有害でしょうか?
アプリのこれらの部分はしばらく変更されておらず、問題は最近発生したものです。しかし、潜在的なバグが以前からあったのではないでしょうか? 洞察に感謝します!私はこの分野の技術的な詳細についてほとんど知識がありません。
excel - VB6 プロジェクトで Excel 2003 の参照を Excel 2010 に置き換える
私はVB6アプリケーションを何年も実行しています。このアプリケーションは、過去に XLS ファイルを作成するために常に Excel 2003 を参照していました。ここで、2003 の代わりに Excel 2010 を使用したいと考えています。そのため、別の開発用コンピューターに Excel 2010 のみをインストールし、vb6 プロジェクトをロードしました。
アプリを実行すると、「Microsoft Excel 10.0 Object Library」が見つからないというエラーが表示されました。これは、このコンピューターに Excel 2010 のみがインストールされており、Excel 2003 がインストールされていないためです。
問題は、正しい参照が必要なときに、「Microsoft Excel 14.0 Object Library」またはこの参照を置き換える同等のものを見つけられなかったことです。
なにか提案を?
ありがとう。
oop - バインディングとポリモーフィズム
Early Binding と Overloading の場合と同様に、Late Binding と Overriding の間に直接的な関係はありますか?
それら (バインディング/オーバーライド/オーバーロード) はポリモーフィズムを実装する方法と呼ぶことができますが、「直接的な関係」はありますか?例: レイト バインディングはオーバーライドに対するサブ/スーパー コンセプトであり、その逆も同様ですか?
excel-2007 - Office2003互換性パックがインストールされていますか?
私のプログラムでは、Excelファイルをロードする必要があります。このファイルの拡張子は[.xls][。xlsx][。xlsm][。xlsb]です。
Excel07 +はこれらすべてを本質的に処理できますが、Excel2003で[.xlsx][。xlsm][。xlsb]を使用するには、http://www.microsoft.com/en-us/download/detailsをインストールする必要があります。 aspx?id = 3
これが、インストールされているエクセルバージョンを判別するための私のコードです。問題:互換性パックのインストールを判別する方法がわかりません(+++でマークされています)
おそらく誰かが解決策を知っています。
c#-4.0 - CRM EarlyBoundEntity DateTime
複数のタイムゾーンで動作する Dynamics CRM システムを使用しています。ユーザーはローカル タイムゾーンで作業し、作成したエンティティと対話するサービスがいくつかあります。
すべてのコードは、SDK によって生成された早期バインド エンティティ クラスを通じて実行されます。
例えば:
- ユーザーは、GMT-4 タイムゾーンでタスクの開始日と終了日が関連付けられたレコードを作成します
- UI による開始日 = 2012/11/23 00:00:00
- DB の開始日 = 2012/11/22 20:00:00
- UI による終了日 = 2012/11/25 00:00:00
- DB の終了日 = 2012/11/24 20:00:00
- 開始日と終了日を含むタスクを記録および作成するサービス プロセス - 今回のサービス アカウントは GMT+1 (BST) です。
- コードによる開始日 = 2012/11/22 20:00:00
- DB の開始日 = 2012/11/22 19:00:00
- UI による終了日 = 2012/11/24 20:00:00
- DB の終了日 = 2012/11/24 19:00:00
- ユーザーが作成されたレコードを確認すると、タスクの開始日と終了日が 4 時間前になっていることがわかります。UI が表示されると、ユーザーが 2012/11/23 00:00 と予想していた場所が 2012/11/22 23:00:00 と表示されます。 00.
ユーザーがサービスで使用されるレコードを作成すると、日付の不一致が問題を引き起こしているという問題が発生しています。
だから私はいくつかの質問があると思います:
- SDK EarlyBoundEntities によって返される日時はローカルまたは UTC (UTC と思われます) ですか?
- UTC の場合、レコードを更新/作成するコードも、設定する前に作業中の日時を UTC に変換する必要があります (つまり、取得時に datetime.ToLocal() を使用し、設定時に ToUTC() を使用します)?
- サーバーは夏時間に合わせて調整する必要がありますか、それとも設定された時間、つまり UTC のままにする必要がありますか?