所以在深入研究之前,我对C语言(简单0)的了解会再次证明在使用winapi时会感到痛苦,我的问题是......
安全地将函数作为TCHAR数组返回的最实用的方法是什么,我所拥有的基本上是列表视图项的枚举,我目前将它们保存在txt文件中,现在我想将它们全部传递给数组,如
//我目前的简单版本
for (int nItem = 0; nItem < nMaxItems; nItem++) {
// Get the name and position of a ListView item.
for ( int subitem = 1; subitem < columns; subitem++)
{
ListView_GetItemText(hWndLV, nItem, subitem, szName, _countof(szName));
wprintf(L"%s, ", szName);
}
wprintf(L"%s", "\n");
}
解决语法和枚举问题不是问题,只是我想确保在将数据传输到数组时我做的一切都是正确的,如果我可能以某种方式将其转换为wstr类型,那将是最好的,我该怎么回事?
我需要返回数组以将其与Autoit一起使用(这让我担心,因为我不确定当我返回tchar数组时它会工作正常,所以wstr应该更好)
答案 0 :(得分:0)
你正在使用wprint,这意味着你已经使用了unicode,或者你正在使用一些非常错误的东西。
首先你应该决定你想要使用什么:ANSI或UNICODE?
如果你决定使用ANSI,你应该用printf调用替换你的wprintf调用,如下所示: printf(“%s,”,szName); 的printf( “\ n”);
如果你想使用unicode,你应该这样做: 在你的cpp文件中包含wchar.h
'wchar_t szName [200]; //或wszName,如果你想在命名上保持一致
ListView_GetItemTextW(hWndLV,nItem,subitem,szName,_countof(szName)); //注意W表示明确的unicode
wprintf(L“\ n”); //或wprintf(L“%s”,L“\ n”);如果你坚持使用%s'