Afr*_*ief 1 c++ windows winapi
因为TabCtrl_InsertItem,我们是否需要将pszText成员点保留为有效内存,或者操作系统是否会复制文本以便我们可以立即清除文本?
TCITEM tcItem = { TCIF_TEXT };
CString strText;
for (int i=0; i<3; i++) {
strText.Format(_T("Tab %d"), i+1);
tcItem.pszText = strText; // option 1
tcItem.pszText = _tcsdup(strText); // option 2
TabCtrl_InsertItem(i, &tcItem);
}
Run Code Online (Sandbox Code Playgroud)
我们怎么知道将来这个功能和其他功能哪个是正确的?我在MSDN中找不到它.
操作系统将字符串复制到内部数据结构.您不需要维护支持字符数组.一旦函数调用完成,您就可以释放它.
通常,任何接收字符串的Windows API函数都是这种情况.你是对的,它没有在MSDN文档中明确说明,但大多数Windows开发人员已经知道这一点.如果不是这样,MSDN 将明确调用.我无法想象一个例子,如果它发生了,它是非常罕见的.
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |