問題タブ [chakra]

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

javascript - Chakra および IDispatch ベースのインデックス付きプロパティ

ネイティブ Windows API と chakrart JavaScript エンジンを使用してスクリプト可能なアプリケーションを作成しています。IDL に次のようなインターフェイスがあります。

問題なくネイティブ オブジェクトを chakrart エンジンに追加できました (JsVariantToValue を使用し、現在のコンテキストのグローバル オブジェクトにプロパティを設定することにより)。ただし、イベント ハンドラーを設定しようとすると、「オブジェクトはこのプロパティまたはメソッドをサポートしていません」という例外メッセージが表示されます。

次の構文バリエーションを試しました。

その最後は、vbscript を使用してこれを行う方法に近いです。

次のように IDL でメソッド構文を使用すると、それが機能します。可能であれば、プロパティの割り当てを使用することをお勧めします。

また、単純なプロパティの割り当てが機能することにも注意してください。インデックス付きのプロパティを試したときにのみ壊れます。JavaScript が object[prop] 構文で行うことは、少なくともネイティブ JavaScript オブジェクトに対しては非常に異なることを理解しています。これは、chakrart 相互運用レイヤーの非互換性によるものでしょうか?