問題タブ [variant]

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

variant - EuCOM を使用して Euphoria で BSTR のバリアント配列を作成するにはどうすればよいですか?

これまでのところ、Typelib を使用して Euphoria DLL との間で Unicode 文字列 (bSTR) を渡す方法を理解しました。これまでのところ、BSTR の配列を作成して返す方法がわかりません。

私がこれまでに持っているコード ( includeEuCOM 自体と Win32lib の一部の s とともに):

タイプライブラリの一部は次のとおりです。

VB6 のテスト コードは次のとおりです。

これまでに取得できたのは、DLL からのエラー「0」だけです。何か案は?誰?

0 投票する
5 に答える
46725 参照

c++ - C++ でバリアント データを格納する方法

特定のデータ ソースに関するメタデータを格納するクラスを作成中です。メタデータは、XML の構造と非常によく似たツリー構造になっています。メタデータ値は、整数、10 進数、または文字列値にすることができます。

このような状況で C++ にバリアント データを保存する良い方法があるかどうか、興味があります。バリアントで標準ライブラリを使用したいので、利用可能な COM、Ole、および SQL VARIANT 型を避けています。

私の現在のソリューションは次のようになります。

MetaValue クラスには、現在格納されているバリアント値を取得するためのさまざまな Get 関数がありますが、値のすべてのクエリを if/else if ステートメントの大きなブロックにして、探している値を見つけ出します。

また、値を文字列のみとして保存し、変換を実行してさまざまなバリアント型を取得することも検討しましたが、これを見る限り、内部文字列の解析とエラー処理が大量に発生し、きれいではありません。浮動小数点値の精度とデータ損失の問題の大きな古い缶をアップしますが、それでも上記の if/else if の問題を排除しません。

標準ライブラリを使用して C++ バリアント データ型に使用するのにクリーンなものを実装または見た人はいますか?

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

c++ - COM、BSTRを含むVARIANT。誰が割り当てますか?

OK、それで私はこれを要約する適切なタイトルを本当に考えることができませんでした。

IPrintPipelinePropertyBagインターフェイスには、「プロパティバッグにプロパティを追加する」のに十分なメソッドAddPropertyがあります。

http://msdn.microsoft.com/en-us/library/aa506384.aspx

AddProperty([in、string] const wchar_t * pszName、[in] const VARIANT * pVar);

次のコードを使用して、プロパティバッグに文字列を追加します。

ただし、作成されたCComBSTRとCComVariantがしばらくすると範囲外になることは明らかです。PropertyBagが文字列を処理し、独自のコピーを作成するかどうかはわかりません。あらゆる種類のものをVARIANT内に保存できるので、そうではないはずです。

文字列が処理されないと仮定すると、私の質問は、COMでこれを行うためのパターンは何ですか?割り当てられた文字列を含むVARIANTを渡し、AddPropertyを呼び出したスレッドが最初に停止した場合でも、その文字列を他のスレッドで使用できるようにし、文字列の割り当てを適切に解除するにはどうすればよいですか?

0 投票する
10 に答える
4307 参照

interface - ダックタイピングは古い「バリアント」型やインターフェースとどう違うのですか?

「ダックタイピング」というフレーズが頻繁に使われ、1 つまたは 2 つのコード例に出くわすことさえあります。私は忙しすぎ自分の研究をすることができません。誰か簡単に教えていただけますか?

  • 「ダックタイプ」とオールドスクールの「バリアントタイプ」の違い、および
  • バリアント型入力よりもダック型入力を好む可能性がある例を示します。
  • ダックタイピングを使用して達成する必要があるものの例を教えてください。

アヒルのタイピングの図は The Register の厚意により掲載

私は、この「新しい」構造の力を疑うことで、野鳥のように見えるつもりはありません。また、研究を拒否することで問題を回避しているわけでもありません。最近それ。私にはタイピング (別名動的タイピング) がないように見えるので、すぐには利点がわかりません。

補遺: これまでの例をありがとう。'O->can(Blah)' のようなものを使用することは、リフレクション ルックアップを実行することと同等であり (おそらく安くはありません)、および/または (O は IBlah) コンパイラーがあなたをチェックすることはできますが、後者には私の IBlah インターフェイスとあなたの IBlah インターフェイスを区別できるという利点がありますが、他の 2 つにはありません。確かに、メソッドごとにたくさんの小さなインターフェースが浮かんでいると面倒になりますが、多くの個々のメソッドをチェックすることもできます...

...だからまた私はそれを得ていません。それは素晴らしい時間の節約になりますか、それとも新品の袋に入った同じ古いものですか? ダックタイピングが必要な例はどこにありますか?

0 投票する
3 に答える
8573 参照

delphi - Delphiバリアントがオブジェクトを保持できないのはなぜですか?

Delphiバリアントがオブジェクトを保持できないのはなぜですか?さらに重要なことに、この制限の背後にある理由は何ですか?

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

visual-c++ - CComVariant を使用した SafeArray アクセスの問題

次のコードブロックがあります

セーフ配列を返すメソッド

私の疑いは、コードの最初のブロックの上にメモリリークがありますか? CComVariantそれ自体がクリーニングに関するすべてのことを処理しますか? または私も手動で行いますかSafeArrayDestroy(paArray);

前もって感謝します!

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

delphi - Delphi: バリアントの配列で TObject を渡す

次のような TObject 型のパラメータを期待するプロシージャがあります。

次のようなプロシージャを呼び出すためにループしている Variant の配列があります。

コンパイラは、「互換性のない型: TObject と Variant」というエラーを返します。

これを回避するにはどうすればよいですか?

詳細:これまで、単純な型 (文字列、数値、日付) をバリアント配列で渡してきました (配列は通常、さまざまな型の組み合わせです。最終的には、データベース ストアド プロシージャにパラメーターとして渡します)。ここで、(場合によっては) TObject も渡す必要があります。

単純な型とオブジェクトの両方を保持できる、値を渡すのに最も適切なデータ型/構造は何ですか? 両方のフィールドを持つ独自の TParam 型を作成できると思いますが、正確な構文はわかりません。誰にもこの例がありますか?

0 投票する
5 に答える
34460 参照

ms-access - アクセス クエリ エラー - Null およびバリアント データ型 - このエラーを修正するにはどうすればよいですか?

全て、

このエラーは私を狂わせています。私はそれを理解したり、運が悪かったりするのに2時間費やしました。エラーは次のとおりです。

「Variant データ型ではない変数に NULL 値を代入しようとしました。」

ここに私のSQLがあります:

この時点で問題が発生すると思います.tbl_parent_001は、別の大きなテーブルからgroup byによって作成されました(PARENTNAMEレコードを個別化するため)。手動でテーブルに移動し、フィールド NEWPARENTID をタイプ autonumber として割り当てて、PARENTNAME レコードに主キーを与える必要がありました。さて、クエリを実行すると、上記のエラーが発生します。問題を引き起こしているのは自動番号だと思いますが、クエリを使用して主キーを作成する他の方法はわかりません。

したがって、(1) 現在のクエリ設定でエラーを軽減すること、および (2) テーブルのデザイン ビューから手動で入力するのではなく、主キーを作成するより良い方法を見つけることの 2 つの点で助けが必要です。

ありがとう、ノア