• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OCXのメソッドの引数に文字列を返したい)

OCXメソッドで文字列を返す方法は?

このQ&Aのポイント
  • VisualC++のClassWizardで作成したメソッドの引数に文字列を返す方法を教えてください。
  • OCXファイルから値を返すために必要な型(ClassWizardパラメータリストの「タイプ」)を知りたいです。
  • Windows 2000とVisual C++ 6.0、Visual Basic 6.0の環境での方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • saitoha
  • ベストアンサー率81% (9/11)
回答No.2

>タイプで「BSTR*」としたところ、「LPCTSTRとは型が違う」とコンパイルエラーが発生してしまいました。 NULL終端文字列はサイズの情報が入ってないので、COMではそのまま渡せないです。BSTRとかVARIANTでラップすればOK。 BSTR渡し _bstr_t ret = _bstr_t(_T("abc")); return ret; 確認してませんが、BSTR*渡しのときは return &ret; としてもうまくいかないかもしれない。 (参照渡し後の_bstr_tインスタンス消滅?)

sputnik8823
質問者

お礼

saitohaさん、回答ありがとうございます。 (返信が遅くなり申し訳ありません。) 「_bstr_t」でうまく動作しました。 本当にありがとうございました。

その他の回答 (1)

  • saitoha
  • ベストアンサー率81% (9/11)
回答No.1

BSTRだとおもいます。 参照コピーでふつうに渡すとメモリリークするかも...

sputnik8823
質問者

補足

saitohaさん、回答ありがとうございます。 (返信が遅くなり申し訳ありません。) >BSTR タイプで「BSTR*」としたところ、「LPCTSTRとは型が違う」とコンパイルエラーが発生してしまいました。 (short long型として扱われているようです。) 何かアドバイスありましたらよろしくお願いします。

関連するQ&A