Visual c++ 从CStringArray的元素获取可修改的TCHAR*
以下是我的尝试和错误: 代码:Visual c++ 从CStringArray的元素获取可修改的TCHAR*,visual-c++,mfc,atl,Visual C++,Mfc,Atl,以下是我的尝试和错误: 代码: 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' : cann
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
错误:
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
对于GetBuffer函数,我发现:
返回指向CString对象的内部字符缓冲区的指针。返回的LPTSTR不是常量,因此允许直接修改CString内容。
所以没关系。
但是对于getAt(0)函数,它表示:
CObject* GetAt(
INT_PTR nIndex
) const;
就是这样,const这个东西,有办法解决这个问题吗?一种从CStringArray获取可修改CString元素的方法。我刚刚成功编译了它。我使用的是[]操作符,而不是GetAt()
CStringArray saTest;
saTest.Add(_T("Test"));
TCHAR* pTest = saTest[0].GetBuffer();
saTest[0].ReleaseBuffer();