Змінюй хід війни! Допомагай ЗСУ!

Преобразование форматов в С+

🔴 18:36 Повітряна тривога в Харків.обл.
Статус: Offline
Реєстрація: 28.01.2009
Повідом.: 176
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #1
Преобразование форматов в С++

Столкнулся с задачей определения времени выполнения потока: вызвал функцию
Код:
BOOL GetThreadTimes
(
    HANDLE hThread, // определяет поток 
    LPFILETIME lpCreationTime, // когда поток был создан 
    LPFILETIME lpExitTime, // когда поток был уничтожен 
    LPFILETIME lpKernelTime, // время, затраченное потоком в ядре
    LPFILETIME lpUserTime // время, затраченное потоком в пользовательском режиме
 );
где
LpKernelTime - абсолютная величина , выраженная в интервалах по 100нс. Сообщает время, затраченное потоком на выполнение кода операционной системы.
LpUserTime - абсолютная величина , выраженная в интервалах по 100нс. Сообщает время, затраченное потоком на выполнение кода приложения.

И тут столкнулся с выводом значения lpUserTime и lpKernelTime, так как мне нуно этот тип данных преобраовать либо в число int либо в char[] чтобы вывести на экран.
Подскажите что сделать чтобы вывести в секундах.
 
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #2
Спроси у
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
.
 
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #3
казалось бы, причем тут плюсы?
 
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #4
Спроси у
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
.

Да делал я так - не получается

Код:
char s1[30];
...
	LPFILETIME lpCreationTime=0, lpExitTime=0, lpKernelTime=0, lpUserTime=0;
	SYSTEMTIME st; 

	GetThreadTimes(ProcessInformation.hThread,lpCreationTime,lpExitTime,lpKernelTime,lpUserTime);

	FileTimeToSystemTime(lpUserTime, &st); 
	
	sprintf(s1, "%d:%d", st.wMinute, st.wSecond);

Пишет что необработанное исключение в строке и нарушение прав доступа при записи где GetThreadTimes вызываю...
 
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #5
Код:
char s1[30];
...
	FILETIME creationTime, exitTime, kernelTime, userTime;
	SYSTEMTIME st; 

	GetThreadTimes(ProcessInformation.hThread,&creationTime,&exitTime,&kernelTime,&userTime);

	FileTimeToSystemTime(&userTime, &st); 
	
	sprintf(s1, "%d:%d", st.wMinute, st.wSecond);

попробуй
 
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #7
LPFILETIME lpCreationTime=0, lpExitTime=0, lpKernelTime=0, lpUserTime=0;
SYSTEMTIME st;

GetThreadTimes(ProcessInformation.hThread,lpCreationTime,lpExitTime,lpKernelTime,lpUserTime);

Я бы очень удивился если бы оно работало без генерала.
 
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #8
Что за генерал?
 
Останнє редагування:
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #10
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #12
у него проблема в том что у юзера под которым выполняется exe не хватает прав на вызов GetThreadTimes
Klez, ты и тут не перестаешь нас веселить :D
 
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #13
Klez, ты и тут не перестаешь нас веселить :D
ТАкое бываеть. Дебажить код жуниоров не просто, ибо сразу в голову начинают лезть страшные мысли о глубина СП\СТЛ и т.д. а оказываетсо что ларчик просто открываетсо, но о том что причина бага самая тупая думаешь в последнюю очередь :)

УПД:
И причем здесь форматы к струтурам данных?
 
  • 🔴 18:36 Повітряна тривога в Харків.обл.
  • #14
ТАкое бываеть. Дебажить код жуниоров не просто, ибо сразу в голову начинают лезть страшные мысли о глубина СП\СТЛ и т.д. а оказываетсо что ларчик просто открываетсо, но о том что причина бага самая тупая думаешь в последнюю очередь
Скорее Klez'у просто нравится дарить людям радость
 
Назад
Зверху Знизу