Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2012, 17:15   #1
Kamilius
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 23
По умолчанию map <int, TCHAR*> C++

Добрый день. Столкнулся с проблемой использования контейнера map под С++, заполненного массивами TCHAR, с ключем типа int. Проболел тему с использованием этого контейнера, теперь не могу разобраться.

У меня есть:
Код:
std::map <int, TCHAR*> DirList;  //массив, в котором буду сохранять пути к файлам с индексом соответствующим номеру файла в списке (list control)
TCHAR szCurrentDir[250] = L"C:\\Program Files\\";     //массив с путем к файлу который хочу сохранить в структуре map
//....... кусок кода в котором я вытаскиваю путь к файлам *.exe
	while(FindNextFile(hFindDir, &FindData) != 0)
	{
		SetCurrentDirectory(szRootDir);
		_tcscat(szCurrentDir, FindData.cFileName);
		_tcscat(szCurrentDir, L"\\");
		SetCurrentDirectory(szCurrentDir);		
					
		hFindExe = FindFirstFile(L"*.exe", &FindExe);

		while(FindNextFile(hFindExe, &FindExe) != 0)
		{
			SendMessage(hList, LB_ADDSTRING, 0, (LPARAM)FindExe.cFileName);
			_tcscat(szCurrentDir, FindExe.cFileName);
			DirList[iIndex] = szCurrentDir;      // <----- место в котором нужно сохранить строку в структуру map
			iIndex++;
		}
		_tcscpy(szCurrentDir, szRootDir);
	} 

//.....
Помогите пожалуйста разобраться в том, как его правильно передать в структуру и как его потом (по ключу) правильно вытянуть.
Заранее благодарен, по скольку данная проблема служит стоппером.
Kamilius вне форума Ответить с цитированием
Старый 21.10.2012, 17:25   #2
Kamilius
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Kamilius Посмотреть сообщение
Добрый день. Столкнулся с проблемой использования контейнера map под С++, заполненного массивами TCHAR, с ключем типа int. Проболел тему с использованием этого контейнера, теперь не могу разобраться.

У меня есть:
Код:
std::map <int, TCHAR*> DirList;  //массив, в котором буду сохранять пути к файлам с индексом соответствующим номеру файла в списке (list control)
TCHAR szCurrentDir[250] = L"C:\\Program Files\\";     //массив с путем к файлу который хочу сохранить в структуре map
//....... кусок кода в котором я вытаскиваю путь к файлам *.exe
	while(FindNextFile(hFindDir, &FindData) != 0)
	{
		SetCurrentDirectory(szRootDir);
		_tcscat(szCurrentDir, FindData.cFileName);
		_tcscat(szCurrentDir, L"\\");
		SetCurrentDirectory(szCurrentDir);		
					
		hFindExe = FindFirstFile(L"*.exe", &FindExe);

		while(FindNextFile(hFindExe, &FindExe) != 0)
		{
			SendMessage(hList, LB_ADDSTRING, 0, (LPARAM)FindExe.cFileName);
			_tcscat(szCurrentDir, FindExe.cFileName);
			DirList.insert(std::pair<int, TCHAR*>(iIndex, szCurrentDir));      // <----- место в котором нужно сохранить строку в структуру map
			iIndex++;
		}
		_tcscpy(szCurrentDir, szRootDir);
	} 

//.....
Изменил сохранение, но вместо того чтоб сохранять массив, сохраняет указатель на него. Как сделать так, чтоб сохраняло именно интересующую меня строку?..

Последний раз редактировалось Kamilius; 21.10.2012 в 17:50.
Kamilius вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двухзначное число int записать как пару однозначных int (c++) narien Помощь студентам 2 08.01.2012 15:10
функция float average(int arrray[],int from,int to) yuliyayuliya Помощь студентам 0 25.04.2011 21:55
С++:invalid types 'int[int]' for array subscript greendoom Помощь студентам 0 19.03.2011 16:53
С++ Опереатор перезагрузки ()(int,int) Jane-sad Помощь студентам 1 08.10.2010 15:26
как присвоить map<string,int> m; нулю ? Olya90 Помощь студентам 5 30.09.2009 01:16