問題タブ [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 投票する
2 に答える
1037 参照

delphi - 単純なDLLでバリアントを使用するにはどうすればよいですか(または使用できない場合)?

内部オブジェクトの一部の機能をDLLとして公開したいのですが、その機能はバリアントを使用しています。しかし、知っておく必要があります。Variantパラメーターを使用して関数をエクスポートしたり、戻り値を返したりすることができます。または、文字列のみの表現に移行する方がよいでしょうか。

言語に依存しないPOV(コンシューマーはDelphiで作成されていませんが、すべてWindowsで実行されます)から何が優れていますか?

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

c# - OLEVariant から .Net byte[]

ネット経由でクライアント側のコンポーネントから受け取る .Net オブジェクトを装った OLEVariant があります。内容がバイト配列であることはわかっていますが、それらの内容をネイティブの .Net バイト配列 (byte[]) に変換する方法がわかりません。変換を達成する方法についての手がかりはありますか?

編集:私たちは自分の質問に答えました。OleVariant (バイト配列型) を .Net byte[] に取得するには、オブジェクトが .Net Array に入るときにオブジェクトをポンピングし、配列の上限を取得して、上限サイズの新しい byte[] を作成し、最後にArray.Copy() を実行します。

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

delphi - 基本的なコードから Delphi へ

私は次のことに苦労しています:

目標は、openoffice の自動化サーバーをパラメーター化することであり、私は Delphi でプログラミングしています。

Delphi コードに変換したい基本的なコードは次のとおりです。

Delphiでの私の試みは次のようになります

これは機能していません 誰かがこれに取り組む方法を提案していますか?

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

.net - Delphi 5 OleVariantをC#にマーシャリング

C#(2.0 / 3.5)のレガシーDelphi5DLLを使用しようとしています。エクスポートされた関数の一部は、次のように宣言されています。

Marshal.GetDelegateForFunctionPointerを使用してこれらをデリゲートとして設定したいのですが、データを正しくマーシャリングするのに問題があります。LoadLibraryとGetProcAddressのkernel32インポートを使用しているので、静的なp / invoke宣言ではなく、GetDelegateForFunctionPointerを使用して実際のマーシャリングを実行しています。

.NETマーシャリングサービスはオブジェクトをCOMOleVariantsにマーシャリングできるため、これを試しました。ただし、これにより例外が発生します:「PInvokeの制限:バリアントを返すことはできません。」だから私はカスタムマーシャラーを使用する必要があると考えています。

Delphi 5 OleVariantを.NETで読み取り可能なものにマーシャリングする正しい方法は何ですか?

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

c++ - VARIANT と _variant_t の間のコピー

私は安全にできると確信しています:

しかし、その逆はどうでしょうか。

COM 関連のスレッド化の問題が原因で、アプリで非常に奇妙な動作が見られます。しかし、バリアントを間違って使用してメモリを台無しにしていたのではないかと思いました。funcB では、VARIANT V は、COM 呼び出し用に準備されているセーフ配列の一部です。私の V=vt 行で、同じバリアントの割り当てが 2 回解除されると問題が発生する浅いコピーを行っていますか?

私は _variant_t が本当に好きで、すべての ::VariantXXX メソッドを避けています。コピーを自動化するために funcB で _variant_t を使用するきちんとした方法はありますか?

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

c++ - VARIANT へのポインタの SAFEARRAY を構築する方法は?

次の方法で COM コンポーネントを使用しようとしています。

C/C++ で paramValues 配列を作成するにはどうすればよいですか?

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

vb.net - VB6 を VB.net Variant に変換する質問

私は、VB6 プログラムを VB.NET に変換する任務を負っています。私のオンライン調査では、コードを調べて、持っているバリアントを取り除く必要があると誰もが言っているようです。これまでのところかなり幸運でしたが、これを交換する際に問題が発生しています。

私はまだVB(6または.netのいずれか)にかなり慣れていないため、これに代わるものを見つけるのに苦労しています。VB.net の変換ツールはこれをうまく処理できますか? または、これを変更する必要がありますか? もしそうなら、これに代わるより良い方法はありますか?私の愚かさを許してください。

前もって感謝します。

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

c# - VB6 バリアントをオブジェクトに割り当てる

C# でコンパイルされた Dll を使用する VB6 アプリケーションがあります。COM を使用してこの作業を行うことに成功しました。しかし、私の問題は、内部に String および Double データ型を含む Variant 配列があることです。この配列をオブジェクトとして受け取る C# Dll に渡す必要があります。したがって、Variant 配列を C# で "理解できる" オブジェクト配列に変換するだけです。誰にも手がかりがありますか?

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

delphi - Delphi 2010 のバリアントの関数 Null

この関数は Delphi 2010 のどこにありますか?

Delphi 6 ではバリアントにありました。

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

variant - COPYDATASTRUCTを介してVARIANT_bstrを送信する方法

COPYDATASTRUCTを使用してVARIANT値を別のアプリケーションに送信する必要があります。これが私がメッセージを送信するために使用している構造です。

私のコードでは、VARIANTを初期化してBSTRと入力し、次のように文字列を割り当てます。

次に、COPYDATASTRUCTを使用してこれを次のように送信します。

このメッセージは2番目のアプリケーションに正常に受信されますが、元の構造体にキャストバックすると、「bstrVal」は不正なポインターを示します

私はこのエラーに苦しんでいるので、あなたの貴重な助けを期待しています。他のvarinatタイプ(int、double)は正常に変換して戻すことができ、このエラーはbstrでのみ発生することに注意してください。:(

ありがとうございました