問題タブ [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++ - `[in,out]` パラメータの再割り当てがオプションになるのはいつですか?
パラメータが[in,out] BSTR*
あり、文字列の内容を変更したいが、同じ長さを維持したい場合、それを再利用できますか、それとも再割り当て/解放して割り当てする必要がありBSTR
ますか?
パラメーターの場合
[in, out]
、呼び出し元がメモリを割り当て、メソッドまたはプロパティは必要に応じてメモリの割り当てを解除および再割り当てできます。呼び出し元は最終的にメモリを削除する責任があります。
より完全にするために、それはいつオプションですか?
c++ - operator TYPE () とオブジェクトのアドレスの取得
ATL クラスCComBSTRには、を返すBSTR
メンバーm_str
と があります。operator BSTR ()
m_str
さて、関数がBSTR *
を引数としてとる場合、 のアドレスを渡しても大丈夫CComBSTR
ですか?
コンパイラは文句を言いませんが、本当に問題ないのなら、なぜ動作するのでしょうか?
c++ - _com_util::ConvertStringToBSTR - アクセス違反
COM サーバーのメソッドを呼び出すと、_com_util::ConvertStringToBSTR でランダムにアクセス違反エラーが発生します。
RegisterQuote 署名:
詳しくは:
なぜこのバグが発生するのかわかりません。必要に応じて追加情報を提供できます。
アップデート:
c++ - BSTR 文字列を _bstr_t または CComBSTR コンストラクターに渡すときのアクセス違反
COM サーバーから渡される BSTR 文字列があります。この文字列を _bstr_t (または CComBSTR) コンストラクターに入れると、アクセス違反が発生します。この例外を調べたところ、この例外は BSTR が空 (または null) の場合にのみ発生することがわかりました。
null の BSTR を明示的に _bstr_t コンストラクターに配置しようとしましたが、これは正常に機能します。
しかし、COM サーバーから渡される BSTR ではこれは機能しません。文字列が空または null (または破損している可能性がありますか?) の場合、アクセス違反の例外が発生します。
この回避策がうまく機能することがわかりました:
しかし、これが _bstr_t または CComBSTR ラッパーで直接機能しない理由を知りたいです。
アップデート:
COM サーバーが BSTR 文字列を渡す方法:
c++ - 複数のタグ名による要素の出力 - msxml - C++ での xml 解析
MSXML を使用して xml ファイルを解析しようとしていますが、すべてのノードではなく特定のタグ (ノード) を解析したいと考えています。xml 解析用に全体に追加された 2 行の下に、すべてのノードの出力が表示されます。L" " を L"tag_name" に置き換えると...結果は得られますが、1 つだけでなく、より多くのタグを含めたいと考えています。助けてください。
//検索するノードの名前を持つ変数: BSTR strFindText = L" ";//" " すべてのノードを出力することを意味します