- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OCXのメソッドの引数に文字列を返したい)
OCXメソッドで文字列を返す方法は?
このQ&Aのポイント
- VisualC++のClassWizardで作成したメソッドの引数に文字列を返す方法を教えてください。
- OCXファイルから値を返すために必要な型(ClassWizardパラメータリストの「タイプ」)を知りたいです。
- Windows 2000とVisual C++ 6.0、Visual Basic 6.0の環境での方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>タイプで「BSTR*」としたところ、「LPCTSTRとは型が違う」とコンパイルエラーが発生してしまいました。 NULL終端文字列はサイズの情報が入ってないので、COMではそのまま渡せないです。BSTRとかVARIANTでラップすればOK。 BSTR渡し _bstr_t ret = _bstr_t(_T("abc")); return ret; 確認してませんが、BSTR*渡しのときは return &ret; としてもうまくいかないかもしれない。 (参照渡し後の_bstr_tインスタンス消滅?)
その他の回答 (1)
- saitoha
- ベストアンサー率81% (9/11)
回答No.1
BSTRだとおもいます。 参照コピーでふつうに渡すとメモリリークするかも...
質問者
補足
saitohaさん、回答ありがとうございます。 (返信が遅くなり申し訳ありません。) >BSTR タイプで「BSTR*」としたところ、「LPCTSTRとは型が違う」とコンパイルエラーが発生してしまいました。 (short long型として扱われているようです。) 何かアドバイスありましたらよろしくお願いします。
お礼
saitohaさん、回答ありがとうございます。 (返信が遅くなり申し訳ありません。) 「_bstr_t」でうまく動作しました。 本当にありがとうございました。