Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вывод с помощью функции NtDisplayString()

10K
18 января 2007 года
sxd
16 / / 06.09.2005
Здравствуйте люди! Окажите помощь пожалуйста, кто знает: поддерживает ли функция NtDisplayString() возврат каретки и спецификаторы, вообщем в С++ будет выглядеть так:

for(int i = 10; i >= 0; i--)
{
printf ("Timer: %d second(s).\r", i);
}

можно ли тоже самое но использовав NativeAPI, например функцию NtDisplayString()?
261
19 января 2007 года
ahilles
1.5K / / 03.11.2005
если тебе надо знать поддерживает она это или нет то просто попробуй вывести текст с двумя строками
я что то не понимаю что обозначает %d (ну не люблю я с++,просто ненавижу) новая строка обозначается цифрой 13
пример
message db "g","0","0","g","l","e",13,"v","e","r","y"," ","c","o","o","l",13,"s","i","t","e",0
будет так
google
very cool
site
10K
19 января 2007 года
sxd
16 / / 06.09.2005
Цитата: ahilles
если тебе надо знать поддерживает она это или нет то просто попробуй вывести текст с двумя строками
я что то не понимаю что обозначает %d (ну не люблю я с++,просто ненавижу) новая строка обозначается цифрой 13
пример
message db "g","0","0","g","l","e",13,"v","e","r","y"," ","c","o","o","l",13,"s","i","t","e",0
будет так
google
very cool
site



%d - это спецификатор, тобишь в функции printf(), заместо его в консоль будет выведена цифра printf ("Timer: %d second(s).\r", i); следущая за строкой тоесть число i, но в конце строки присутствует возврат коретки, который после вывода строки перемещает курсор на начало строки и снова выводит строку но сновым i и так далее, таким образом создается такой вывод:
Timer: 10 second(s). на начало выполнения програмы, 10 заменяется на 9, затем 8, 7, 6 и так далее, своего рода обратный отсчёт.

Насчёт NtDisplayString(), функция выводит обычную строку, но спецификатор у меня не получился, люди посоветовали использовать sprintf() (функции стандартной библиотеки использовать можно в Native приложениях), но с ней тоже не вышло, может что-то не так сделал. Вот пример использования NtDisplayString().

UNICODE_STRING string;
RtlInitUnicodeString(&string, L"HELLO WORLD!\n");
for(int i = 0; i < 10; i++)
{
NtDisplayString(&string)
}

Выведет:
HELLO WORLD!
HELLO WORLD!
HELLO WORLD!
HELLO WORLD!
HELLO WORLD!
HELLO WORLD!
HELLO WORLD!
HELLO WORLD!
HELLO WORLD!
HELLO WORLD!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог