問題タブ [bstr]

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

c++ - BSTR を wchar_t[] に効率的にコピーするにはどうすればよいですか?

wchar__t オブジェクトにコピーするために変換したい BSTR オブジェクトがあります。注意が必要なのは、BSTR オブジェクトの長さが数キロバイトから数百キロバイトになる可能性があることです。データをコピーする効率的な方法はありますか? wchar_t 配列を宣言するだけで、保持する必要がある可能性のある最大のデータを常に割り当てることができることはわかっています。ただし、これは、数キロバイトしか必要としない可能性があるものに数百キロバイトのデータを割り当てることを意味します。助言がありますか?

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

c++ - 最適な時間で _variant_t から char* を取得する

これが私がスピードアップしたいコードです。ADO レコードセットから値を取得し、char* に変換しています。しかし、これは遅いです。_bstr_t の作成をスキップできますか?

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

com - 空のBSTRとNULLのBSTRの間に違いがあるべきですか?

インターフェイスを維持する場合COM、空は?BSTRと同じように扱う必要があります。NULL言い換えれば、これらの2つの関数呼び出しは同じ結果を生成する必要がありますか?

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

c++ - C/C++ で BSTR パラメータを ANSI に変換するためのより適切なコードはどれですか?

これまでのところ、着信 BSTR を 2 つの (多くの?) 方法で ANSI に変換できることを発見しました。速度や効率などに関して、一方が他方よりも「優れている」かどうか知りたいです。

私がしばらくの間使用してきた方法は、USES_CONVERSIONW2Aマクロを使用することです。

ただし、最近、別の手法に出くわしました。

確かに、それはより冗長で、2 つの呼び出しがありますが、とマクロがあらゆる種類の楽しみとゲームを隠している可能性があることはwcstombsわかっています。USES_CONVERSIONW2A

より効率的/高速なコードはどれですか? または、より良い仕事をするために使用できる別のテクニックはありますか?

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

c++ - C 型の文字列配列の要素を BSTR として COM オブジェクトに渡しますか? (C++)

外部プログラムから呼び出される C++ DLL を作成しています。

1.) このプログラムから文字列の配列 (char *var として) を引数として取得します。

2.) この配列を繰り返し処理し、文字列配列の各要素に対して COM 関数を呼び出したい。COM 関数は BSTR を受け取る必要があります。

問題を引き起こしているのは SysAllocString(BSTR((const char *)rateMaterialTypeNames[i])) ビットだと思います。プログラムの実行時にアクセス違反が発生します。

これは、i で rateMaterialTypeName の値にアクセスする正しい方法ですか? i の値として、単一の文字ではなく、「IronOre」のようなものを期待していることに注意してください。

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

c - char *をBSTRに変換する方法は?

CdllからVBにchar*を渡すにはどうすればよいですか?

サンプルコードは次のとおりです。

この機能は機能していません。実際には、実際の値ではなく、他のいくつかの値がVBに送信されます。

誰かが解決策を提案できますか?

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

c++ - _bstr_t to UTF-8 possible?

I have a _bstr_t string which contains Japanese text. I want to convert this string to a UTF-8 string which is defined as a char *.

Can I convert the _bstr_t string to char * (UTF-8) string without losing the Japanese characters?

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

windows - null BSTR の使用はどこで文書化されていますか?

null BSTR (null WCHAR* ポインター) を空の文字列として扱い、それに応じて BSTR を操作するすべてのコードを設計することは、少なくとも一般的な方法です。この質問に対する答えは同じです。

このプラクティスはどこに文書化されていますか? この規則を説明する公式文書はありますか?