在win prog函数中获取从tchar返回数组的函数

时间:2011-01-03 00:19:16

标签: c++ winapi

所以在深入研究之前,我对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应该更好)

1 个答案:

答案 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'