最常见的是,您使用
CStrBuf
当您必须将字符串缓冲区传递给被调用函数填充的C API时。以下是一个调用的示例
GetModuleFileName()
来自C++(我的头顶)。
// assume we got a valid HMODULE somewhere
HMODULE module = ...;
// somehow decide on a buffer size; for simplicity, use a constant here
DWORD size = MAX_PATH;
CString filename;
GetModuleFileName(module, CStrBuf(filename, size), size);
// the result is now in filename
// (note: error checks omitted for brevity)
CStrBuf
有一个
operator LPTSTR
,即它可以隐式地转换为可写字符串。出于这个原因,它可以写成临时对象来代替
LPTSTR
自变量(本例中的第二个自变量)。
请注意
CStrBufT
类模板就像
CStringT
是。坚持专业化
CStrBuf
类似于
CString
.