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

com - COM インターフェイスの WCHAR は良いことですか?

COM インターフェイスの WCHAR は良いことですか?

私はインターネットでこの質問に対する答えを探していましたが、結果はありませんでした。

基本的に、COM で char* / wchar* を使用する必要がありますか、代わりに BSTR を使用する必要がありますか?

それは安全ですか、それとも依存していますか?

このコード例では、その文字列 (ランダム ソースから取得したコード):

COM について話すときに出てくるすべてのマーシャリング、メモリ境界などで何をいつ使用するかについて、私は混乱しています。

データ バッファ (byte*) はどうですか?

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

c++ - 非 Unicode プログラムの言語が ini の読み方を変更

GetPrivateProfileSectionW や GetPrivateProfileStringW などの ini 読み取り関数のユニコード バージョンを使用している非ユニコード アプリケーションがあります。「非Unicodeプログラムの言語」が英語に設定されている場合、プログラムはうまく機能しています。

この設定を中国語 (PRC) に変更すると、関数 GetPrivateProfileSectionW および GetPrivateProfileStringW が null を返します。

この設定は中国語のままにしておく必要があります。これは、「非 Unicode プログラムの言語」で英語を選択すると、CComBSTR.LoadString が期待どおりに機能せず、リソース DLL に中国語の文字が疑問符として読み込まれるためです。

何か案は?

ありがとう。

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

c++ - _bstr_t メモリを解放するための c++ dtor

簡単な質問ですが、C++ で何をしているのかわかりません。

_bstr_t メンバーを持つクラスがある場合。オブジェクトが削除されたときにメンバーが解放されるかどうかを知りたい:

クラスにはAdtor がありません。それで、クラスのyeachメンバーのdtorを呼び出すデフォルトのdtorAですか?

特に _bstr_t の場合は、SysAllocString を介して文字列を割り当てるためです。

ありがとう

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

c++ - BSTR を C++ DLL 関数から VB6 アプリケーションに渡す

VB6 アプリに次のコードがあります。

出力はリストで、FileText はファイル パスを含むテキスト フィールドです。私の C++ DLL には次の関数が含まれています。

Pathtypedef'd as はどこにありますかLPCSTR。引数は完全に私の DLL に入りますが、何を返そうとしても、VB6 アプリはゴミしか表示しません。でいくつかの異なる方法を試し、引数をSysAllocStringByteLengthにキャストし、他のバリアントを作成しました。文字列の最初の文字しか表示されないか、実際の文字列ではなく、ドット付きの Y のみが表示されます。有効な BSTR を作成して C++ から VB6 に渡すための実際の方法を知っている人はいますか?SysAllocStringLPCWSTR

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

com - BSTR* の使用方法

outC++ COM dll のインターフェイスに BSTR*という値があります。そして、これを C# .Net クライアントに返しています。私の C++ 関数では、差分条件に従って異なる値を割り当てる必要があります。

例えば:

同じ BSTR に対して SysAllocSTRing を 2 回呼び出すとどうなりますか? これを処理する最善の方法は何ですか?

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

c++ - VarBstrFromI4 は、プログラム内の他の BSTR の値を変更します

最後の行 VarBstrFromI4 は、インデックス (BSTR) の値を目的の値に変更しますが、長さ (BSTR) の値もインデックス (BSTR) の値に変更します。インデックスと長さを指定した SysAllocString を含む多くのオプションを実行しようとしましたが、同じ問題が解決しません。

助けてください。

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

c# - C#/.Net 文字列の長さがプレフィックスされ、null で終了するのはなぜですか?

読んだ後null で終了する文字列の根拠は何ですか? また、C#/.Net の文字列は、内部的には、 BSTR Data Typeのように長さのプレフィックスと null で終了することがわかったいくつかの同様の質問があります。

文字列が長さのプレフィックスと null の両方で終了する理由は何ですか? 長さの接頭辞のみ?

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

winapi - 参照によって渡された BSTR は、呼び出し元の関数で再割り当てする必要がありますか?

私の質問は、それは s の正しい動作ですか?最初に呼び出した後、新しいものBSTRを保存する必要がありますか?newX_xBSTRfunctionA

またはfunctionA、渡された s の割り当て/割り当て解除が間違っている可能性があることの一部が間違っていBSTRます。

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

string - CComBSTRが空かどうかをテストする方法

CComBSTRが空の文字列であるかどうかをテストするにはどうすればよいですか?('text'値なし、 ""またはnullの場合があります)

私のアイデア:

  1. CComBSTR::ByteLength()0を返すかどうかをテストします
  2. CComBSTR::GetStreamSize()0を返すかどうかをテストします
  3. CComBSTR::m_strがNULLかどうかをテストします
  4. CComBSTR::Length()0を返すかどうかをテストします

どちらが正しいアプローチですか?それらのどれもそうでない場合、正しいアプローチは何ですか?

ありがとう。

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

vbscript - VBScriptの文字列をBSTR*を期待するCOM関数に渡す

VBScriptでサードパーティのCOM関数を呼​​び出しています。メソッドシグネチャは次のとおりです。

私のVBScriptでは、次の呼び出しで型の不一致が返されます。

ただし、文字列リテラルの受け渡しは正常に機能します。

VBScript側で何をする必要があるか考えてみてください。