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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2012, 16:26   #11
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
какой компиль то?
я в gcc собирал и проверял.

и какая ошибка?
MVS2010

Код:
error C2665: 'std::make_pair' : none of the 4 overloads could convert all the argument types
......
while trying to match the argument list '(WCHAR [260], DWORD)'
Build FAILED.
L6go1as вне форума Ответить с цитированием
Старый 04.01.2012, 17:53   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

хм. юникод однако. доберусь домой подправлю.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.01.2012, 19:27   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

самое смешное что по msdn код не должен был работать.
не инициализировал поле размера структуры.

мдя, тот код должен работать, но с включеннным юникодом в проекте он работать будет только для юникод окружения, нет возможности вызвать оригинальные функции.

не удачная организация имен функций в студии(в заголовочниках)
Код:
#include <windows.h>
#include <tlhelp32.h>
#include <vector>
#include <string>
#include <utility>
#include <iostream>

std::vector<std::pair<std::wstring,DWORD> > GetProcesses()
{
    std::vector<std::pair<std::wstring,DWORD> > res;
    HANDLE snapHandle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if(snapHandle!= INVALID_HANDLE_VALUE)
    {
        PROCESSENTRY32W data;
		data.dwSize=sizeof(data);
        if(Process32FirstW(snapHandle,&data))
        {
            do
            {
				std::wstring t(data.szExeFile);
                res.push_back(std::make_pair<std::wstring,DWORD>(t,data.th32ProcessID));
            }
            while(Process32NextW(snapHandle,&data));
        }
        CloseHandle(snapHandle);
    }
    return res;
}

int main()
{
    std::vector<std::pair<std::wstring,DWORD> > pl=GetProcesses();
    for(std::vector<std::pair<std::wstring,DWORD> >::iterator it=pl.begin();it<pl.end();it++)
        std::wcout<<it->second<<":"<<it->first<<std::endl;
    return 0;
}
в студии так будет значит.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 04.01.2012 в 19:54.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.01.2012, 20:08   #14
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию

Спасиб, сейчас свой проект закончу и потестю )
L6go1as вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
subscript out of range - как найти ошибку Т_Т Bape}l{ka Microsoft Office Excel 16 02.12.2011 19:13
Паскаль: процедура, функция т_т Liam_ Помощь студентам 8 09.01.2011 21:52
Работа с файлами Т_Т Лесная Эльфийка Паскаль, Turbo Pascal, PascalABC.NET 0 26.12.2010 21:57
Не сходится рисунок !) Weyner Помощь студентам 0 26.12.2010 16:22
Не работает Filter. Не знаю, что делать...Т_Т Zerofill БД в Delphi 2 02.06.2009 21:23