BSTR を char* に変換する方法を知っている人はいますか?
更新:これをやろうとしましたが、正しいか間違っているかわかりません。
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p );
BSTR を char* に変換する方法を知っている人はいますか?
更新:これをやろうとしましたが、正しいか間違っているかわかりません。
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p );
あなたのコードは大丈夫です。ConvertBSTRToString
それだけです。に関してはstrcpy
、testDest
が指す文字列を保持するのに十分な大きさが必要p
です。ConvertBSTRToString は新しい文字列を割り当てるため、後で解放する必要があることに注意してください。完了したら、次のことを確認してください。
delete[] p;
BSTR
ただし、いくつかの注意事項があります ( MSDN のドキュメントからわかるように):
- Microsoft Windows では、Unicode 文字 (ワイド文字または 2 バイト文字) の文字列で構成されます。
- 複数の埋め込みヌル文字を含めることができます。
そのため、常に期待どおりに機能するとは限りstrcpy
ません。