問題タブ [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.
com - COM インターフェイスの WCHAR は良いことですか?
COM インターフェイスの WCHAR は良いことですか?
私はインターネットでこの質問に対する答えを探していましたが、結果はありませんでした。
基本的に、COM で char* / wchar* を使用する必要がありますか、代わりに BSTR を使用する必要がありますか?
それは安全ですか、それとも依存していますか?
このコード例では、その文字列 (ランダム ソースから取得したコード):
COM について話すときに出てくるすべてのマーシャリング、メモリ境界などで何をいつ使用するかについて、私は混乱しています。
データ バッファ (byte*) はどうですか?
c++ - 非 Unicode プログラムの言語が ini の読み方を変更
GetPrivateProfileSectionW や GetPrivateProfileStringW などの ini 読み取り関数のユニコード バージョンを使用している非ユニコード アプリケーションがあります。「非Unicodeプログラムの言語」が英語に設定されている場合、プログラムはうまく機能しています。
この設定を中国語 (PRC) に変更すると、関数 GetPrivateProfileSectionW および GetPrivateProfileStringW が null を返します。
この設定は中国語のままにしておく必要があります。これは、「非 Unicode プログラムの言語」で英語を選択すると、CComBSTR.LoadString が期待どおりに機能せず、リソース DLL に中国語の文字が疑問符として読み込まれるためです。
何か案は?
ありがとう。
c++ - _bstr_t メモリを解放するための c++ dtor
簡単な質問ですが、C++ で何をしているのかわかりません。
_bstr_t メンバーを持つクラスがある場合。オブジェクトが削除されたときにメンバーが解放されるかどうかを知りたい:
クラスにはA
dtor がありません。それで、クラスのyeachメンバーのdtorを呼び出すデフォルトのdtorA
ですか?
特に _bstr_t の場合は、SysAllocString を介して文字列を割り当てるためです。
ありがとう
c++ - BSTR を C++ DLL 関数から VB6 アプリケーションに渡す
VB6 アプリに次のコードがあります。
出力はリストで、FileText はファイル パスを含むテキスト フィールドです。私の C++ DLL には次の関数が含まれています。
Path
typedef'd as はどこにありますかLPCSTR
。引数は完全に私の DLL に入りますが、何を返そうとしても、VB6 アプリはゴミしか表示しません。でいくつかの異なる方法を試し、引数をSysAllocStringByteLength
にキャストし、他のバリアントを作成しました。文字列の最初の文字しか表示されないか、実際の文字列ではなく、ドット付きの Y のみが表示されます。有効な BSTR を作成して C++ から VB6 に渡すための実際の方法を知っている人はいますか?SysAllocString
LPCWSTR
com - BSTR* の使用方法
out
C++ COM dll のインターフェイスに BSTR*という値があります。そして、これを C# .Net クライアントに返しています。私の C++ 関数では、差分条件に従って異なる値を割り当てる必要があります。
例えば:
同じ BSTR に対して SysAllocSTRing を 2 回呼び出すとどうなりますか? これを処理する最善の方法は何ですか?
c++ - VarBstrFromI4 は、プログラム内の他の BSTR の値を変更します
最後の行 VarBstrFromI4 は、インデックス (BSTR) の値を目的の値に変更しますが、長さ (BSTR) の値もインデックス (BSTR) の値に変更します。インデックスと長さを指定した SysAllocString を含む多くのオプションを実行しようとしましたが、同じ問題が解決しません。
助けてください。
c# - C#/.Net 文字列の長さがプレフィックスされ、null で終了するのはなぜですか?
読んだ後null で終了する文字列の根拠は何ですか? また、C#/.Net の文字列は、内部的には、 BSTR Data Typeのように長さのプレフィックスと null で終了することがわかったいくつかの同様の質問があります。
文字列が長さのプレフィックスと null の両方で終了する理由は何ですか? 長さの接頭辞のみ?
winapi - 参照によって渡された BSTR は、呼び出し元の関数で再割り当てする必要がありますか?
私の質問は、それは s の正しい動作ですか?最初に呼び出した後、新しいものBSTR
を保存する必要がありますか?newX_x
BSTR
functionA
またはfunctionA
、渡された s の割り当て/割り当て解除が間違っている可能性があることの一部が間違っていBSTR
ます。
string - CComBSTRが空かどうかをテストする方法
CComBSTRが空の文字列であるかどうかをテストするにはどうすればよいですか?('text'値なし、 ""またはnullの場合があります)
私のアイデア:
CComBSTR::ByteLength()
0を返すかどうかをテストしますCComBSTR::GetStreamSize()
0を返すかどうかをテストしますCComBSTR::m_str
がNULLかどうかをテストしますCComBSTR::Length()
0を返すかどうかをテストします
どちらが正しいアプローチですか?それらのどれもそうでない場合、正しいアプローチは何ですか?
ありがとう。
vbscript - VBScriptの文字列をBSTR*を期待するCOM関数に渡す
VBScriptでサードパーティのCOM関数を呼び出しています。メソッドシグネチャは次のとおりです。
私のVBScriptでは、次の呼び出しで型の不一致が返されます。
ただし、文字列リテラルの受け渡しは正常に機能します。
VBScript側で何をする必要があるか考えてみてください。