sxd
14.01.2007, 20:00
Привет всем, вот пишу прогу-службу режима ядра, работа с файлами получается, а вот запнулся вроде бы на простом следующий участок кода для консольного приложения режима Win32 никак не получается перенести на NativeAPI.
for(int i = 0; i < 100; i++)
{
Sleep (1000);
printf ("Timer: %d second(s).\r", i);
}
Получилось следущее:
int i;
LARGE_INTEGER iDelayInterval;
iDelayInterval.QuadPart = -10000000;
for(i = 0; i < 10; i++)
{
NtDisplayString //вывод не работает, проблема
NtDelayExecution(FALSE, &iDelayInterval);
}
Не как бы вывод обычной строки (без спецификаторов) работает, без проблем, а когда с возвратом каретки и %d не пашет. Помогите разобраться. Может тут как-нибудь с wsprintf или sprintf.
Обычный вывод строки делаю так:
UNICODE_STRING string;
LARGE_INTEGER iDelayInterval;
int i;
RtlInitUnicodeString(&string, L"Hello!");
for(i = 0; i < 10; i++)
{
NtDisplayString(&string);
NtDelayExecution(FALSE, &iDelayInterval);
}
for(int i = 0; i < 100; i++)
{
Sleep (1000);
printf ("Timer: %d second(s).\r", i);
}
Получилось следущее:
int i;
LARGE_INTEGER iDelayInterval;
iDelayInterval.QuadPart = -10000000;
for(i = 0; i < 10; i++)
{
NtDisplayString //вывод не работает, проблема
NtDelayExecution(FALSE, &iDelayInterval);
}
Не как бы вывод обычной строки (без спецификаторов) работает, без проблем, а когда с возвратом каретки и %d не пашет. Помогите разобраться. Может тут как-нибудь с wsprintf или sprintf.
Обычный вывод строки делаю так:
UNICODE_STRING string;
LARGE_INTEGER iDelayInterval;
int i;
RtlInitUnicodeString(&string, L"Hello!");
for(i = 0; i < 10; i++)
{
NtDisplayString(&string);
NtDelayExecution(FALSE, &iDelayInterval);
}