• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CComBSTR型文字列の)

CComBSTR型文字列の編集方法とトリム防止方法

このQ&Aのポイント
  • CComBSTR型の既存文字列を短くする方法について教えてください。m_strをfreeしているためにエラーが発生します。
  • CComBSTR型文字列の編集方法について詳しく解説します。また、トリムを防止する方法についても教えてください。
  • CComBSTR型文字列の編集方法とトリム防止方法について、テストソースコードを含めてご紹介します。

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

  • ベストアンサー
回答No.1

CComBSTRは直接編集はできないと思っています。 テストソースでは最終的にsNameが012345789efgになるようにしたいと言うことですよね。たとえば、sName = L"00\\efg"なら結果は"00efg"を期待しているのですね。 BSTRはNULLを突っ込んでも長さは変わりませんよね。 ちょっと助長かもしれませんが、もう一つCComBstrを使って結果を作成するのはいかがでしょうか? if (sP != NULL) {  WORD size = sP - sName.m_str;  CComBSTR Tmp(size,sName);  sName.Empty();  sName = Tmp;  lSize = sName.Length(); } sName += L"efg"; return EXIT_SUCCESS;

nakashi
質問者

お礼

回答ありがとう ポインターの演算を避けたいので 下記のようにしました if (sP != NULL) { *sP = 0; CComBSTR sWork = sDirName.m_str; sDirName = sWork; }

関連するQ&A