問題タブ [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 に答える
2478 参照

c++ - bstr_tをdoubleに変換する

c ++でbstr_tをdoubleに変換するにはどうすればよいですか?

* charに変換してから、* charをdoubleに変換することを考えていましたか?

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

c++ - C ++、COM、および文字列の受け渡し

WindowsMediaPlayerプラグインの他のプログラマーのソースコードをデバッグしています。このプラグインにより、WMPがクラッシュすることがあり、プラグイン設定ウィンドウを開くのに非常に長い時間がかかることがあります。この問題は、音楽の再生中に設定ウィンドウを開いた場合にのみ発生します。プレイヤーが停止している場合は問題なく開きます。

コードを調べてデバッグしていると、問題の原因と思われるコードの行にたどり着きました。

プロパティページには、次のメンバー変数があります。

初期化時のプロパティページは、COMオブジェクトのget_textメソッドを呼び出します。

現時点では、hresは「0x80010105:サーバーが例外をスローしました」です。Visual Studioのデバッグ出力には、「wmplayer.exeの0x764efbaeでの初回例外:0x80010105:」と表示されます。

get_textメソッドは次のように定義されています。

Dsp_plugin.idlで

Dsp_plugin.hで

そして最後に、この例外をスローするメソッド自体:Dsp_plugin.cpp

COM DLLは、「Unicode文字セットを使用する」設定でコンパイルされます。

私はCOMプログラマーの経験はありませんが、文字列をunsigned char **として渡すことは私には珍しいようです。私は、COMを扱うときに主にBSTRまたはVARIANTを見てきました。

COMの第一人者が説明できるかもしれませんが、なぜこの例外が発生するのか、メソッドをunsigned char ** / malloc/freeの代わりにBSTR*とSysAllocString/SysfreeStringを使用するように変換するだけで修正できるのでしょうか?

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

visual-c++ - 引数として渡すときに、どのように_bstr_tをBSTRに変換しますか?

簡単な例をとると:

当初、_bstr_tには_bstr_tからBSTRに変換するBSTR演算子があると思いましたが、msdnを見ると、そのような演算子は定義されていません。

_bstr_tをBSTRパラメータに、または_variant_tをVARIANTにpassignすると、どのように機能しますか?

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

c++ - ATL BSTR * strをレジストリキーに変換する方法SetValue(LPCTSTR str type

ATLコードはもちろんC++をやってから何年も経ちました

私は外科的援助を必要とするこの方法を持っています:(

これはモバイルアプリ用なので、CStringとMFCは使いたくない

レジストリのSet.Valueメソッドで使用するために、BSTR*strを正しいタイプのLPCTSTRに変換する必要があります。

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

c++ - _bstr_tに(str.findと同様に)文字列が含まれているかどうかを確認する方法

私は_bstr_t'sに不慣れで、まだコツをつかもうとしています。特定の文字列xがbstring内のどこかに含まれているかどうかを確認しようとしていました。私が普段やりたいこと。

念のため、対象となるプラットフォームはWindowsです。

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

python - Python文字列からBSTRへ

Windows7でiTunesCOMインターフェイスを使用しています。iTunes.CurrentTrack.AddArtworkFromFile(path)メソッドでは、パスのタイプがBSTRである必要があります。

いくつかの調査から、BSTRは基本的な文字列を意味するC ++ /VisualBasicデータ型であることがわかりました。

PythonのASCII文字列をBSTRに変換する方法はありますか?

コード:

エラー:pywintypes.com_error:(-2147352567、'例外が発生しました。'、(0、None、None、None、0、-2147467259)、None)

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

c++ - BSTRデータ型の使用中にエラーが発生しました

私のfirebreathプラグインプロジェクトには、アクティブXコントロールのラッパークラスがあります。

メソッドの1つは、入力としてBSTRデータ型変数を取りますが、メソッドを呼び出してBSTRを渡そうとすると、エラーが発生します。

「WTypes.h」ヘッダーファイルもインクルードしました。しかし、それで問題が解決するわけではないようです。

だから誰かが代替案を提案します。

Makecall関数は、これらのパラメーターを使用して、アクティブXコントロールによって実装されたMakecall関数を呼び出します。

エラー

PS:エラーについて検索した後、火吹きはワイド文字、つまりユニコードをサポートしていないことがわかりました。それで、firebreathでユニコードデータ型を使用する方法があります。

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

delphi - BSTR の SAFEARRAY を使用して VARIANT から値を表示する方法

私は、s の a を返す関数を持つ COM オブジェクト ライブラリに取り組んでいVARIANTます。このインスタンスの値を表示して、.xml 内に保存するにはどうすればよいですか? ネットで調べてみましたが、明確な答えはありませんでした。SAFEARRAYBSTRVARIANTTStringList

次のことを試しましたが、成功しませんでした:

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

c++ - Wstring から CComBstr への変換

wstring から CComBstr に変換する方法を教えてください。

次のように変換しようとしましたが、失敗しています

CComBSTR BstrAddress(strID); // strID は wstring 型

「パラメータ 1 を 'std::wstring' から 'int' に変換できません」というエラーが表示されます

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

c# - COMは、管理対象サーバーからネイティブクライアントへのBSTRの適切なマーシャリングに失敗します

COMを介して公開され、ネイティブクライアントによって使用されるマネージドインターフェイスがあるシナリオで苦労しています。私はなんとか問題を切り分けました、そしてそれは基本的に相互運用ランタイムによって不適切にマーシャリングされている文字列に要約されます、この問題をシミュレートして再現するために私は次のような小さなプロジェクトを作成しました:

サーバ:

このクラスをコンパイルしてregasm+gacutil / iを実行した後、私はこれを小さく構築しました

ネイティブクライアント:

ここで、hrの値はS_OKであり、bstrはNULL(0x000000)に設定されています。

問題がマーシャリング自体にあることを確認するために、私は

管理対象クライアント:

これは、別のアセンブリからUrlSyncクラスを呼び出します。

期待される文字列を取得しています。私がここで欠けているものは何ですか?