anchor.diff:        Exit;
     end;
     for L in AM.Params do
  -    Result := Result + Format('%s, ', [ParamNameOf(L.Name)]);
  +    Result := Result + Format('%s, ', [ParamTypeCV(L.ParamType, ParamNameOf(L.Name), ACVDelphi)]);
     if Result.Length <> 0 then
     begin
       Result := Result.Trim;
  
positive.code:   Result := LeftStrOf(':', Str).Trim;
  end;
  
  function TCppConvert.GetDelphiParams(AM: TMember; NoDefualt: Boolean): string;
  var
    L: TParam;
    LD, LVar, LConst, LName: string;
  
negative.code:   uOthers;
  
  
  //ǷCDuiString
  function isDuiStrType(AType: string): Boolean;
  begin
    Result := AType.Equals('CDuiString') or AType.Equals('CDuiString&') or AType.Equals('PCDuiString');
  end;
  // PWideChar ɶ
  function isStringType(AType: string): Boolean;
  begin
     Result := AType.Equals('STRINGorID') or AType.Equals('LPCTSTR') or
               AType.Equals('LPTSTR');
  end;
  // תΪstring
  function Typestring(AType: string; CVDelphiStr: Boolean): string;
  begin
    if (isStringType(AType) or isDuiStrType(AType)) and CVDelphiStr then
      Result := 'string'
    else Result := AType;
  end;
  // ǿת LPTSTRģstringǿתΪӦ
  function ParamTypeCV(AType, AParam: string; CVDelphiStr: Boolean): string;
  begin
    if isStringType(AType) and CVDelphiStr then
      Result := Format('%s(%s)', [AType, AParam])
    else Result := AParam;
  end;
  
  
  constructor TCppConvert.Create;
  begin
  