这是我的尝试和错误:
码
TCHAR* pszDisplayName_I; //$I .. file
TCHAR *pDollar = NULL;
pszDisplayName_I = ((CString)saSursa.GetAt(i)).GetBuffer();
pDollar = _tcsrchr(pszDisplayName_I,'$');
*(pDollar + 1) = 'I';
错误:
error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject' C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxcoll.h
对于getBuffter函数我发现了这个:
返回指向CString对象的内部字符缓冲区的指针。返回的LPTSTR不是const,因此允许直接修改CString内容。 所以没关系。 但是对于getAt(0)函数,它说:
CObject* GetAt(
INT_PTR nIndex
) const;
那么, const的东西,有没有办法绕过这个?我可以从CStringArray中获取可修改的CString元素的方法。
答案 0 :(得分:2)
我刚刚成功编译了这个。而是使用GetAt()我使用了[]运算符。
CStringArray saTest;
saTest.Add(_T("Test"));
TCHAR* pTest = saTest[0].GetBuffer();
saTest[0].ReleaseBuffer();