Получение функции для возврата массива из tchar в функцию win prog - PullRequest
0 голосов
/ 03 января 2011

Итак, перед тем, как погрузиться в это, я просто чувствую, что мои знания C (которые равны 0) снова окажутся болезненными, когда я возлюсь с winapi, мой вопрос ...

Какой самый практичный способчтобы безопасно возвращать функцию в виде массива TCHAR, у меня есть в основном перечисление элементов списка, в настоящее время я сохраняю их в текстовом файле, и теперь я хочу передать их все в массив, как

// ПРОСТАЯ ВЕРСИЯ, которую У меня В настоящее время ЕСТЬ

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 голосов
/ 03 января 2011

вы используете wprint, что означает, что вы либо уже используете Unicode, либо вы действительно что-то не так.

сначала вы должны решить, что вы хотите использовать: ANSI или UNICODE?

если вы решите использовать ANSI, вам следует заменить вызовы wprintf вызовами printf следующим образом: printf ("% s", szName); Е ( "\ п");

если вы хотите использовать юникод, вы должны сделать это так: включите wchar.h в ваши файлы cpp

'wchar_t szName [200]; // или wszName, если вы хотите быть последовательными в именовании

ListView_GetItemTextW (hWndLV, nItem, подэлемент, szName, _countof (szName)); // обратите внимание на W, что означает юникод явно

wprintf (L "\ n"); // или wprintf (L "% s", L "\ n"); если вы настаиваете на использовании% s '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...