問題タブ [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.
c++ - BSTR を wchar_t[] に効率的にコピーするにはどうすればよいですか?
wchar__t オブジェクトにコピーするために変換したい BSTR オブジェクトがあります。注意が必要なのは、BSTR オブジェクトの長さが数キロバイトから数百キロバイトになる可能性があることです。データをコピーする効率的な方法はありますか? wchar_t 配列を宣言するだけで、保持する必要がある可能性のある最大のデータを常に割り当てることができることはわかっています。ただし、これは、数キロバイトしか必要としない可能性があるものに数百キロバイトのデータを割り当てることを意味します。助言がありますか?
c++ - 最適な時間で _variant_t から char* を取得する
これが私がスピードアップしたいコードです。ADO レコードセットから値を取得し、char* に変換しています。しかし、これは遅いです。_bstr_t の作成をスキップできますか?
com - 空のBSTRとNULLのBSTRの間に違いがあるべきですか?
インターフェイスを維持する場合COM
、空は?BSTR
と同じように扱う必要があります。NULL
言い換えれば、これらの2つの関数呼び出しは同じ結果を生成する必要がありますか?
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を呼び出したスレッドが最初に停止した場合でも、その文字列を他のスレッドで使用できるようにし、文字列の割り当てを適切に解除するにはどうすればよいですか?
c++ - C/C++ で BSTR パラメータを ANSI に変換するためのより適切なコードはどれですか?
これまでのところ、着信 BSTR を 2 つの (多くの?) 方法で ANSI に変換できることを発見しました。速度や効率などに関して、一方が他方よりも「優れている」かどうか知りたいです。
私がしばらくの間使用してきた方法は、USES_CONVERSION
とW2A
マクロを使用することです。
ただし、最近、別の手法に出くわしました。
確かに、それはより冗長で、2 つの呼び出しがありますが、とマクロがあらゆる種類の楽しみとゲームを隠している可能性があることはwcstombs
わかっています。USES_CONVERSION
W2A
より効率的/高速なコードはどれですか? または、より良い仕事をするために使用できる別のテクニックはありますか?
c++ - C 型の文字列配列の要素を BSTR として COM オブジェクトに渡しますか? (C++)
外部プログラムから呼び出される C++ DLL を作成しています。
1.) このプログラムから文字列の配列 (char *var として) を引数として取得します。
2.) この配列を繰り返し処理し、文字列配列の各要素に対して COM 関数を呼び出したい。COM 関数は BSTR を受け取る必要があります。
問題を引き起こしているのは SysAllocString(BSTR((const char *)rateMaterialTypeNames[i])) ビットだと思います。プログラムの実行時にアクセス違反が発生します。
これは、i で rateMaterialTypeName の値にアクセスする正しい方法ですか? i の値として、単一の文字ではなく、「IronOre」のようなものを期待していることに注意してください。
c - char *をBSTRに変換する方法は?
CdllからVBにchar*を渡すにはどうすればよいですか?
サンプルコードは次のとおりです。
この機能は機能していません。実際には、実際の値ではなく、他のいくつかの値がVBに送信されます。
誰かが解決策を提案できますか?
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?
windows - null BSTR の使用はどこで文書化されていますか?
null BSTR (null WCHAR* ポインター) を空の文字列として扱い、それに応じて BSTR を操作するすべてのコードを設計することは、少なくとも一般的な方法です。この質問に対する答えは同じです。
このプラクティスはどこに文書化されていますか? この規則を説明する公式文書はありますか?