我在我的代码中使用_aligned_malloc。但它正在抛出错误错误,如图所示。
CString sBuffer = _T("Hello");
TCHAR* pBuffer;
pBuffer = (TCHAR *)_aligned_malloc(1024, 16);
if (pBuffer == NULL) {
...............Error .. msg
}
pBuffer = sBuffer.GetBuffer(sBuffer.GetLength());
..................................................
.........................................................
sBuffer.ReleaseBuffer(sBuffer.GetLength());
if (pBuffer != NULL) {
_aligned_free(pBuffer);
}
答案 0 :(得分:2)
CString
类实现了(LPCTSTR)
强制转换操作符,可用于获取const TCHAR*
。
请注意,TCHAR
在 MBCS 模式下定义为char
,在 UNICODE 模式下定义为wchar
。有关更多详细信息,请参阅其定义的 tchar.h 。
如果您想要修改缓冲区的内容,则需要使用GetBuffer()
方法。完成后别忘了给ReleaseBuffer()
打电话。因此,无需手动分配内存。
您还可以从CString
轻松构建TCHAR*
。有一个构造函数可以做到这一点。