Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 641
от 20.09.2003, 23:40

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 4190
Отправлено ответов: 12319
Активность: 294.0 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

_vt
Статус: Профессиональный
Общий рейтинг: 122.71
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152
URL: Программирование
[Подробней >>]
dr_dolhpin
Статус: Доверительный
Общий рейтинг: 147.76
[Подробней >>]
 
Andrew Vext
Статус: Профессиональный
Общий рейтинг: 104.79
[Подробней >>]
Eugene
Статус: Профессиональный
Общий рейтинг: 106.32
URL: мощный файловый архив
[Подробней >>]
Greys
Статус: Доверительный
Общий рейтинг: 115.07
[Подробней >>]
 
Hangatyr
Статус: Опытный
Общий рейтинг: 112.13
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.04
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 110.95
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 117.57
[Подробней >>]
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 107.27
URL: Beeblebrox / TMA HomePage
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 108.58
URL: Мой сайтик...
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 4150. Ув.эксперты подскажите плз. насчет такого трабла моя программа долго грузится (до первого окна) подо... (ответов: 1)
Вопрос № 4151. В общем я наверно не точно выразился.. Имеется в виду первый столбец выглядит как заголовок, т.е. в ... (ответов: 1)
Вопрос № 4152. Здравствуйте, уважаемые эксперты! С интересом прочитал дискуссию (в нескольких последних выпусках ра... (ответов: 4)
Вопрос № 4153. Уважаемые эксперты, вопрос как под Win32 осуществить следующую операцию , я знаю расширение файла... (ответов: 2)
Вопрос № 4154. Добрый день, господа! Вопрос по драйверам: Есть такая функция MmGetVirtualForPhysical. Объясните, пл... (ответов: 2)
Вопрос № 4156. Здравствуйте. проблема в следующем: ИДЕшный диск в мобил раке кто-то на горячую повыдергивал и соотв... (ответов: 3)
Вопрос № 4157. Ув. эксперты подскажите такую вещь... как дочернее окно может узнать размер рабочей области родитель... (ответов: 3)
Вопрос № 4158. Приветствую вас! ...когда я мышкой изменяю размер ListView'a, какое приходит сообщение уведомляющее ... (ответов: 2)
Вопрос № 4159. Доброе время суток! Уважаемые эксперты ответьте пожалуйста вот на какой (может быть глупый) вопрос, ... (ответов: 7)
Вопрос № 4160. Здравствуйте! Все вы наверно видели Media Player 9.0. Так вот, там есть такая фишка, что когда он св... (ответов: 1)
Вопрос № 4161. Уважаемые эксперты скажите пожалуйсто где можно найти исходники какого-нибудь вируса на асьме или па... (ответов: 2)
Вопрос № 4162. Я к дополнении к вопросу 4148, про то как в GCC создать бинарник. Я юзаю Win, поетому --oformat bina... (ответов: 1)

Вопросов: 12, ответов: 29


 Вопрос № 4150

Ув.эксперты подскажите плз. насчет такого трабла
моя программа долго грузится (до первого окна) подозреваю,
что грузятся библиотеки,так вот хотелось бы узнать как
это прекратить т.е.загрузку некоторых DLL, которые не
используются у меня в коде(исходнике на бейсике)ну типа
WSOCK.DLL в прил.таблица импорта


Приложение:


Вопрос отправлен: 15.09.2003, 23:31
Отправитель: arthy

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Приветствую Вас, arthy!
Ну, блин, вряд ли ты здесь спецов по VB найдешь - или в другом месте ищи или переходи на серьезный язык программирования, да хотя бы Delphi :( Там поможем...

*** E-Man 1.5( edition 04) - life is just a game***


Ответ отправлен: 16.09.2003, 22:38
Отправитель: _vt


 Вопрос № 4151

В общем я наверно не точно выразился..
Имеется в виду первый столбец выглядит как заголовок, т.е.
в ячейках как-бы кнопки, и при нажатии на любую из ячеек первого
столбца, происходит выделение всей строки, ...ну как в ехеле...
И у меня есть ещё второй вопрос...
...допустим у окна имеется два дочерних окна в виде рамок, которые
заполняют всю рабочую область окна...
как реализовать, чтоб по углам в родительском окне, дочерние не изм
размер, а границу разделяющую их можно было менять в сторону одного
или другого?



Вопрос отправлен: 16.09.2003, 00:08
Отправитель: Agny (agny@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Приветствую Вас, Agny!
По первой части - подозреваю, что невозможно (нет, выделить всю строку в LV можно - это отдельный extended style LVS_EX_FULLROWSELECT), но чтобы как кнопка первый столбец - только если сам картинки необходимые ему задашь.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 16.09.2003, 23:29
Отправитель: Bob Johnson


 Вопрос № 4152

Здравствуйте, уважаемые эксперты!
С интересом прочитал дискуссию (в нескольких последних выпусках рассылки) между др. дельфином и вами :) с вашего позволения, добавлю несколько слов насчет архитектуры NT, потому что хотя дельфин больше ошибался, но и у вас не все правильно :)
Итак, комментарии по дельфину:
"я все равно настаиваю на том, что именно семейство NT хотя бы попыталось применить некоторые элементы микроядерной архитектуры для своего ядра"
не только NT. Есть и другие операционки (в основном, юниксовые клоны) с элементами микроядерной архитектуры
"Да, я согласен, что полностью соответствующей микроядерной архитектуре КОМЕРЧЕСКОЙ ОС пока нет"
смотря как понимать "полное соответствие"... QNX как раз и есть коммерческая ОС на базе микроядра (ядро QNX занимает где-то 30 Кбайт)... во всяком случае, "более микроядерной" ОС я не знаю :)
"но все же в NT применены общие концепции, построения на базе микроядра."
что же это за "общие концепции"? Все что касается "микроядерных элементов" в NT - это собственно само ядро. Я именно про ядро NT говорю, потому что неверно называть весь код, работающий в кернел моде, ядром... В архитектуре NT как раз выделяется один модуль, который называется ядром, а NT Executive хоть и работает тоже в кернел моде, но ядром не называется.
"Вы можете долго придераться к моим словам, но что архитектура ядер 9x отличается от NT, как раз своей модульностью, я убежден..."
а вот зря вы убеждены :) архитектура ядер (если уж понимать термин "ядро" в широком смысле, т.е. все модули работающие в кернел моде и взаимодействующие между собой), одинаково модульна и в 9x, и в NT... Ну какая разница, если взять тот же vmm32.vxd (содержащий диспетчер виртуальных машин и драйверы виртуальных устройств) или ntoskrnl.exe (в котором лежит ядро и NT executive)? И там, и там в одном большом файле лежит куча системных модулей, которые разворачиваются в память в процессе загрузки и инициализации ОС... Надо смотреть на картину в памяти после загрузки ОС, а не на один файл на винте :) А в памяти после загрузки Win9x или NT картина такая, что в одном случае ядро + драйверы, и в другом тоже ядро + драйверы... так что о монолитности NT вообще неправильно говорить, нету ее :)
"Тем более учитывая скользкость обсуждаемого тут вопроса."
никакой скользкости тут нет... просто NT имеет гибридную архитектуру.
"Еще раз отмечу, что нельзя назвать NT-семейство ОС в чистом виде монолитно-ориентированной системой"
действительно нельзя... не монолитная она... знаете, дельфин, есть одна замечательная книга именно по архитектуре NT. Называется Inside Windows NT, автор Хелен Кастер. Эту книгу я экспертам тоже рекомендую найти и прочитать :) прочитав ее, вы не будете больше говорить про монолитную архитектуру NT (потому что на самом деле ее архитектура это гибрид послойной, клиент-серверной и объектной моделей)

Andrew Vext:
вам тоже надо быть поточнее, когда вы пишете что "в NT (начиная с 4 версии) реализованы многие принципы микроядерных ОС". Единственный принцип микроядерной ОС, это собственно само микроядро :)
или вот вы пишете: "NT не является микроядерной в чистом виде (к этому ближе всего Mach)." да нет, гораздо ближе QNX :) а мак как раз сейчас уходит от микроядра (Mac OS X сделали на основе ядра FreeBSD, которое микроядром не является)
_vt:
"по поводу сабжа: архитектура ОС и модульность ядра - разные вещи... ОС с монолитной архитектурой ядра - значит всё ядро работает в ring0... В системе с микроядерной архитектурой - драйвера устройств и многие системные вызовы могут работать уже с более низкими привелегиями"
сорри, у вас в голове тоже архитектурная каша, как у дельфина :) если все ядро работает в нулевом кольце, это совершенно не значит, что такая ОС обязательно имеет монолитную архитектуру... Аналогично, если ОС имеет микроядро, совершенно необязательно драйвера такой операционки должны работать, ну скажем в кольце 1 или 2... ну вот OS/2 2.x имела несколько процедур ввода-вывода, работающих в кольце 2, но она ведь не имела микроядро... и наоборот, QNX это ось с микроядром, но она использует только два уровня привилегий, как и NT.
"но всё же ОС семейств 9x, NT, Linux являются ОС с монолитной архитектурой ядра."
но все же "ОС семейств 9x, NT, Linux" имеют модульную архитектуру ядра :) (монолитное ядро в линуксе когда-то было, но это уже в прошлом. Правда, есть возможность самостоятельно скомпилить монолитное ядро (если очень захочется :)), но современные дистрибы линукса идут по умолчанию с модульным ядром). Ну вот вы сами подумайте, если NT и 9x поддерживают динамическую загрузку и выгрузку драйверов режима ядра БЕЗ перезагрузки компьютера, какая же это монолитность? :)
Bob Johnson:
"если выпить пива или курнуть травы, то возможно доказать практически любую точку зрения на счет Windows NT."
не, ну это вы чересчур :) любую точку зрения насчет NT доказать (именно доказать) нельзя... там в общем все не так сложно, чтобы можно было сделать неоднозначную интерпретацию... а вообще ваши ответы дельфину мне показались наиболее грамотными и компетентными среди ответов всех экспертов. Так держать :) Постарайтесь найти Inside Windows NT, очень хорошая книга именно по архитектуре системы, тем более что Win9x обречена на вымирание и тратить время на изучение ее ядра не стоит. Гораздо полезнее обратить взор на NT/2000/XP/Longhorn :)
P.S. кто нибудь, киньте это в рассылку, чтобы закрыть дискуссию по архитектуре NT :)



Вопрос отправлен: 16.09.2003, 02:02
Отправитель: Бывший эксперт :)

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Здравствуйте, Бывший эксперт :)!
> сорри, у вас в голове тоже архитектурная каша, как у дельфина :)
Не отрицаю, я вообще только с n-го вопроса доктора дельфинов начал над этим задумываться... :)
> "но всё же ОС семейств 9x, NT, Linux являются ОС с монолитной архитектурой ядра."
но все же "ОС семейств 9x, NT, Linux" имеют модульную архитектуру ядра :)
А я и не отрицал!!! Я же сказал: модульное строение ядра и архитектура ядра (микро-, макро-, экзоядерная архитектура) - это разная классификация... Ядро может физически находиться в разных файлах(модулях), и работать как единое целое, т.е. являться монолитной системой...
> если NT и 9x поддерживают динамическую загрузку и выгрузку драйверов режима ядра БЕЗ перезагрузки компьютера, какая же это монолитность?
Да-да, это здесь ни причем, я уже сказал...
> любую точку зрения насчет NT доказать (именно доказать) нельзя... там в общем все не так сложно, чтобы можно было сделать неоднозначную интерпретацию...
Ну ни хрена себе! Не так сложно! Если бы... Тогда бы и NT умер... :))
а вообще ваши ответы дельфину мне показались наиболее грамотными и компетентными
Ну кто как не BJ... Он наша последняя надежда...:) Почти все старые эксперты ушли...
> тем более что Win9x обречена на вымирание
Лично для меня 9х вымерли еще до DOS :)))


Непонятно, что вы хотите доказать? Такие понятия, как микро и макроядерная архитектура - недостижимые явления (ну как добро и зло, черное и белое - всё относительно:-)) Абсолютных крайностей не бывает...) Какие-то черты разных архитектур присутствуют в любой современной ОС... А доктор начал наезжать за несогласие с ним на экспертов...

*** E-Man 1.5( edition 04) - life is just a game***


Ответ отправлен: 16.09.2003, 02:58
Отправитель: _vt


Отвечает dr_dolhpin

Добрый день, Бывший эксперт :)!
Эта дискуссия уже закрыта, и я возвращаться к ней не буду.
Насчет Inside Windows* - да это хорошая книга
и там описано ядро достаточно подробно.
Считаем эту тему закрытой. Мне кажется что все всем стало
ясно насчет ядра Windows NT/2K.
Пока !


Ответ отправлен: 16.09.2003, 09:34
Отправитель: dr_dolhpin


Отвечает Bob Johnson

Добрый день, Бывший эксперт :)!
"Бывший эксперт"? А кто ты? :)
> Постарайтесь найти Inside Windows NT
Вот только недавно здесь проходила ссылка на exetools, где появилась книга Inside W2K третьего издания - как раз ее скачал и начал читать. Жаль времени немного - сейчас бы на 3-й курс...
> Так держать :)
:)
...
> Отвечает _vt
> Ну кто как не BJ... Он наша последняя надежда...:) Почти все старые эксперты ушли...
Да уж - это действительно печально.
P.S. По делу - сейчас что-то не идет мысль в голову, видимо надо пойти спать... Думаю, что сделать монолитную ос для современного ассортимента некачественного (в некоторой степени) железа просто невозможно. Драйвера, драйвера, драйвера и т.д.
Хорошо, что ты в этом разбираешься (если ты "бывший" - то почему ушел?) Интересно, а если человека спроецировать на компьютерную архитектуру, то у него будет макроядерная или микроядерная ОС? :)

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 16.09.2003, 23:30
Отправитель: Bob Johnson


Отвечает Andrew Vext

Здравствуйте, Бывший эксперт :)!
Как приятно встретить интересную тему. Сразу появляется желание написать что-то свое (появляется у меня).
Итак.
1) К книге Inside Windows NT я отсылал всех еще в первом своем ответе (это действительно сняло бы множество вопросов). Чтобы быть более точным мне пришлось бы приводить целые куски глав из книги.
2) Принципы микроядерной ОС
- наличие микроядра;
- все остальное - сервисы системы;
- связь между ядром и сервисами только через сообщения.
В какой-то мере (детальней опять же читайте Inside, причем желательно все три издания, начиная от Inside Windows NT и заканчивая Inside Windows 2000) это реализовано в NT. Кстати, обратите внимание, что про кольца защиты здесь не говорится ничего. Принципы архитектуры должны быть независимы от аппаратуры. В каком кольце что располагается - это особенности конкретной реализации, которые к монолитности, модульности или микроядерности никакого отношения не имеют.
3) NT действительно гибридная система (там всего понапихано).
4) Про QNX ничего не скажу - ну не работал я с ней ни разу. Mach 3.0 - пытается реализовать микроядро. Mac OS - последняя действительно на юинксовом ядре (но ее-то чего сюда приплетать? Это же не Mach).
5) По-моему основная проблема в том, что у большинства в голове каша из общих архитектурных принципов. Ну пусть человек, задавая вопрос напишет - что он считает микроядерной системой. Может тогда выяснится, что надо начинать ответ не с конкретной реализации (Windows NT), а с описания архитектуры ОС вообще.


Ответ отправлен: 16.09.2003, 12:57
Отправитель: Andrew Vext


 Вопрос № 4153

Уважаемые эксперты, вопрос как под Win32 осуществить следующую операцию , я знаю расширение файла ну к примеру *.txt и я знаю, что программа для обработки по умолчанию в Виндовозе ну к примеру Notepad , а как программно получить по расширению путь исполняемого файла который это расширение обрабатывает, заранее благодарен....



Вопрос отправлен: 16.09.2003, 06:47
Отправитель: greg

[Следующий вопрос >>] [Список вопросов]

Отвечает Eugene

Добрый день, greg!
Всё это можно узнать в реестре. HKEY_CLASSES_ROOT\.TXT\DEFAULT = "TXTFILE",
HKEY_CLASSES_ROOT\TXTFILE\SHELL\OPEN\COMMAND = "NOTEPAD.EXE %1"
Далее остаётся только пробежаться по папкам, записанным в переменной Path. Если там не найдётся, то тогда опять надо лезть в реестр. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\notepad.exe

Ответ отправлен: 16.09.2003, 09:38
Отправитель: Eugene


Отвечает Greys

Приветствую Вас, greg!
Будем искать решение! Оно должно быть в реестре! И так,в
HKEY_CLASSES_ROOT находятся так называемые ассоциации с файлами! Так как нас интересует *.txt, то переходим HKEY_CLASSES_ROOT.txt и строковой параметр (default)="txtfile" указывает нам дальнейший путь переходим HKEY_CLASSES_ROOT xtfileshellopencommand, и здесь (default)="C:WINDOWSNOTEPAD.EXE %1"! То есть алгоритм прост считываем значение ключа HKEY_CLASSES_ROOTнужное расшерение(default), пусть равно "xxx", считываем следующее значение HKEY_CLASSES_ROOTxxxshellopencommand
и из полученного значения "yyy %1", из которого удаляем последние 3 символа! Програмно это организовать просто при помощи WinAPI функций! Покапайтесь в архиве рассылки, там были примеры работы с реестром!
С уважением, Greys!

Ответ отправлен: 16.09.2003, 22:05
Отправитель: Greys


 Вопрос № 4154

Добрый день, господа!
Вопрос по драйверам:
Есть такая функция MmGetVirtualForPhysical. Объясните, плз, как ей пользоваться, а то я получаю GP. Я делаю так:
push eax
call MmGetVirtualForPhysical



Вопрос отправлен: 16.09.2003, 06:57
Отправитель: Loed (loed@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает dr_dolhpin

Здравствуйте, Loed!
>Добрый день, господа!
>Вопрос по драйверам:
>Есть такая функция MmGetVirtualForPhysical. Объясните, >плз, как ей пользоваться, а то я получаю GP. Я делаю так:
>push eax
>call MmGetVirtualForPhysical
Возможно у вашего приложения недостаточный уровень DPL для
выполнения данной операции... Она скорее всего доступна только из нулевого кольца защиты...
Всего !



Ответ отправлен: 16.09.2003, 09:33
Отправитель: dr_dolhpin


Отвечает Hangatyr

Добрый день, Loed!
Во-первых, в DDK ясно написано не использовать ее в драйверах, но как известно если нельзя, но очень хочется, то можно.
Во-вторых, ты неправильно передаешь ей параметры (их там два дворда, а не один), поэтому и генерится #GP.
Вот кусок из моего драйвера, получающий виртуальный адрес каталога таблиц страниц.


Приложение:

Ответ отправлен: 16.09.2003, 07:27
Отправитель: Hangatyr


 Вопрос № 4156

Здравствуйте.
проблема в следующем: ИДЕшный диск в мобил раке кто-то на горячую повыдергивал и соответственно все рухнуло. Необходимо выдернуть с него файлы. В биосе диск виден, винда говорит, что устройство не работает, Партишен показывает как неформатированный раздел, ДискЕдит от Нортона инфу на диске видит, но с ним я до этого не работал.
Хочу попробовать сам файлы выдернуть. Подскажите хотя бы в каком направлении двигаться. Если есть ссылки или описания - приму на мыло. Спасибо за любую информацию.



Вопрос отправлен: 16.09.2003, 12:04
Отправитель: Victor (sevenseas@newmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Приветствую Вас, Victor!
Тут хорошая вещь - diskedit, это ты верно подметил и если он ее видит - в чем проблема?? Тебе горячие клавиши подсказать??? Я не помню...

*** E-Man 1.5( edition 04) - life is just a game***


Ответ отправлен: 16.09.2003, 22:38
Отправитель: _vt


Отвечает Bob Johnson

Доброе время суток, Victor!
Лучше используй что-то типа easy recovery pro.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 16.09.2003, 23:32
Отправитель: Bob Johnson


Отвечает dr_dolhpin

Доброе время суток, Victor!
>Здравствуйте.
>проблема в следующем: ИДЕшный диск в мобил раке кто-то на >горячую повыдергивал и соответственно все рухнуло. >Необходимо выдернуть с него файлы. В биосе диск виден, >винда говорит, что устройство не работает, Партишен >показывает как неформатированный раздел, ДискЕдит от >Нортона инфу на диске видит, но с ним я до этого не >работал.
>Хочу попробовать сам файлы выдернуть. Подскажите хотя бы в >каком направлении двигаться. Если есть ссылки или >описания - приму на мыло. Спасибо за любую информацию.
Во первых выдерни его из этого рака, и попробуй воткнуть
в компьютер на котором Windows в нормальном состоянии, можно также попробовать программу для сохранения образа HDD на другом носителе а потом попробовать его снова записать на хард. Может получиться, но только при условии, что с
элекстроникой этого харда все в порядке...
Удачи...


Ответ отправлен: 17.09.2003, 08:19
Отправитель: dr_dolhpin


 Вопрос № 4157

Ув. эксперты подскажите такую вещь...
как дочернее окно может узнать размер рабочей области родительского окна?



Вопрос отправлен: 16.09.2003, 12:22
Отправитель: Agny (agny@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Приветствую Вас, Agny!
1. GetParentWindow()
2. GetClientRect()

Ответ отправлен: 16.09.2003, 13:46
Отправитель: vitya


Отвечает Bob Johnson

Здравствуйте, Agny!
GetClientRect - только hwnd нужно указать родительского окна (его можно получить GetParent).

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 16.09.2003, 23:32
Отправитель: Bob Johnson


Отвечает dr_dolhpin

Добрый день, Agny!
>Ув. эксперты подскажите такую вещь...
>как дочернее окно может узнать размер рабочей области >родительского окна?
GetWindowInfo тебе поможет,
в качестве хендла передай хендл нужного тебе окна,
а в качестве второго параметра структуру с информацией типа
WINDOWINFO в которую эта функция и положит потробненькую инфу по интересующему тебя окну, в том числе и координаты
рабочей области окна...
Всего хорошего !



Ответ отправлен: 17.09.2003, 08:19
Отправитель: dr_dolhpin


 Вопрос № 4158

Приветствую вас!
...когда я мышкой изменяю размер ListView'a, какое приходит сообщение уведомляющее об его изменении размера? и как узнать новый размер?
если это wm_size, то как узнать что оно для ListView'a?



Вопрос отправлен: 16.09.2003, 17:30
Отправитель: Agny (agny@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Dark_Lord

Приветствую Вас, Agny!
Размер listView - а изменить невозможно, можно изменить размер окна-родителя, а ему приходят WM_MOVE & WM_MOVING соответсвенно!

Ответ отправлен: 16.09.2003, 21:11
Отправитель: Dark_Lord


Отвечает Bob Johnson

Добрый день, Agny!
Можно сделать, чтобы list view (да и вроде почти любой виндовский контрол) имел изменяемые границы - стиль WS_THICKFRAME (040000h). Если же изменять его размер, он присылает WM_NOTIFY. Какое именно - смотри сам.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 16.09.2003, 23:34
Отправитель: Bob Johnson


 Вопрос № 4159

Доброе время суток!
Уважаемые эксперты ответьте пожалуйста вот на какой (может быть глупый) вопрос,
почему моя програма не работает:
Сначала прошу нажать клавишу на клаве:
mov ah,10h
int 16h
Потом вывожу нажатую букву на экран
Как мне известно, код лежит в al
mov ah,9
mov dx,ax
mov dl,al
int 21h
Скажите что не так.
Если не трудно, то исправьте прогу.
Спасибо...



Вопрос отправлен: 16.09.2003, 19:21
Отправитель: DimaS

[Следующий вопрос >>] [Список вопросов]

Отвечает Hangatyr

Доброе время суток, DimaS!
Лови.

Приложение:

Ответ отправлен: 16.09.2003, 19:58
Отправитель: Hangatyr


Отвечает Ayl

Добрый день, DimaS!
Все не так. Ну, почти все. Т.е. код символа ты получаешь правильно, а потом делаешь неизвестно что. Зачем использовать для вывода одного символа функцию для вывода строки? Для этого ты можешь использовать любую из следующих функций:

Прерывание 21h:
---------------
1. Функция 2, код символа находится в регистре DL
2. Функция 6, код символа находится в регистре DL (нельзя вывести символ с кодом 255)

Прерывание 10h:
---------------
1. Функция 9:
AL = код символа
BH = видеостраница (обычно 0)
BL = атрибут для вывода символа
CX = количество выводимых символов

2. Функция 0Ah:
AL = код символа
BH = видеостраница (обычно 0)
CX = количество выводимых символов

3. Функция 0Eh:
AL = код символа

Прерывание 29h:
---------------
Специальное прерывание для вывода символа из регистра AL.

В приложение - код твоей проги.


Приложение:

Ответ отправлен: 16.09.2003, 20:03
Отправитель: Ayl


Отвечает _vt

Здравствуйте, DimaS!
Символ выводи не 9, а 2 функцией...

*** E-Man 1.5( edition 04) - life is just a game***


Ответ отправлен: 16.09.2003, 22:38
Отправитель: _vt


Отвечает Bob Johnson

Доброе время суток, DimaS!
9-я функция воспринимает адрес стоки в dx, а ты ей передаешь то, что вернула 10-я функция. Используй int 29h.
mov ah,10h
int 16h
int 29h
ret

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 16.09.2003, 23:35
Отправитель: Bob Johnson


Отвечает dr_dolhpin

Приветствую Вас, DimaS!
>Доброе время суток!
>Уважаемые эксперты ответьте пожалуйста вот на какой (может >быть глупый) вопрос,
>почему моя програма не работает:
>Сначала прошу нажать клавишу на клаве:
>mov ah,10h
>int 16h
>Потом вывожу нажатую букву на экран
>Как мне известно, код лежит в al
>mov ah,9
>mov dx,ax
>mov dl,al
>int 21h
>Скажите что не так.
>Если не трудно, то исправьте прогу.
>Спасибо...
Тут проблема в том, что функция №9 прерывания DOS 21h - это вывод строки, а не символа, причем строка обязана оканчиваться на знак '$', кроме это в регистре dx (точнее в регистровой паре ds:dx) должен быть адрес буфера где содержится строка, а не код символа как у тебя. Тебе лучше воспользоваться функцией 02h прерывания 21h.
Она выводит символ на экран:
//Ввод символа
mov ah,10h
int 16h
//в AH номер функции 02h
mov ah,02h
//mov dx,ax выкинем - это не нужно
mov dl,al //Код символа в DL
int 21h //Вызов функции
Вроде всё . Пока .


Ответ отправлен: 17.09.2003, 08:18
Отправитель: dr_dolhpin


Отвечает Beeblebrox

Доброе время суток, DimaS!
mov ah,0
int 16h
xchg ax,dx
mov ah,2
int 21h


Ответ отправлен: 17.09.2003, 09:50
Отправитель: Beeblebrox


Отвечает Portnov

Приветствую Вас, DimaS!
Чавой-то вы намудрили... Ну, интереса ради пройдитесь по проге отладчиком, авось разберетесь...
Когда символ уже в AL, надо только сделать int 29h - это прерывание ДОСа выводит символ из AL в текущую позицию курсора.
С уважением, Portnov.

Ответ отправлен: 17.09.2003, 17:15
Отправитель: Portnov


 Вопрос № 4160

Здравствуйте!
Все вы наверно видели Media Player 9.0. Так вот, там есть такая фишка, что когда он сворачивается, то сварачивается в панель задач в собственную панель управления и им можно с неё управлять. Как это реализованно? Меня интересуют примеры (если уже есть) или настоящие доки от microsoft (вырезки из новых MSDN'ов или со статей microsofta).
Может есть другие плееры с такой функцией? Или программа для кастрирования MP9 "по самые яйца" - т.е. оставить только вышеназванную функцию и возможность проигрывания аудио. А то слишком неповоротливая и тормознутая система. Слишком много ненужного.



Вопрос отправлен: 16.09.2003, 20:52
Отправитель: Илья (b.i@date.by)

[Следующий вопрос >>] [Список вопросов]

Отвечает dr_dolhpin

Доброе время суток, Илья!
>Здравствуйте!
>Все вы наверно видели Media Player 9.0. Так вот, там есть >такая фишка, что когда он сворачивается, то сварачивается >в панель задач в собственную панель управления и им можно >с неё управлять. Как это реализованно?
Это реализовано путем скрытия основного окна и создания
новой панели на экране которая функционально дублирует
воспроизводящие функции Media Player
>Меня интересуют примеры (если уже есть) или настоящие доки >от microsoft (вырезки из новых MSDN'ов или со статей >microsofta).
Нового тут ничего нет, это обычные и довольно старые функции API.
>Может есть другие плееры с такой функцией? Или программа >для кастрирования MP9 "по самые яйца" - т.е. оставить >только вышеназванную функцию и возможность проигрывания >аудио. А то слишком неповоротливая и тормознутая система. >Слишком много ненужного.
Используй WinAmp, Sonique, и т.д.
Все уже есть, не нравится MS Media Player, выкинь его нафиг
и не мучайся...
Пока !


Ответ отправлен: 17.09.2003, 08:18
Отправитель: dr_dolhpin


 Вопрос № 4161

Уважаемые эксперты скажите пожалуйсто где можно найти исходники какого-нибудь вируса на асьме или паскале,с его описанием.


Приложение:


Вопрос отправлен: 16.09.2003, 21:11
Отправитель: oleg

[Следующий вопрос >>] [Список вопросов]

Отвечает Greys

Доброе время суток, oleg!
Посмотри архив рассылки об этом многократно писалось!


Ответ отправлен: 16.09.2003, 22:22
Отправитель: Greys


Отвечает Hangatyr

Доброе время суток, oleg!
Очень сложно послать что-то на неуказанное мыло, так что предлагаю сходить на http://vx.netlux.org/

Ответ отправлен: 17.09.2003, 05:17
Отправитель: Hangatyr


 Вопрос № 4162

Я к дополнении к вопросу 4148, про то как в GCC создать бинарник. Я юзаю Win, поетому --oformat binary не помогает.



Вопрос отправлен: 16.09.2003, 22:21
Отправитель: Ppavel (alexpd@iolfree.ie)

[Следующий вопрос >>] [Список вопросов]

Отвечает dr_dolhpin

Здравствуйте, Ppavel!
>Я к дополнении к вопросу 4148, про то как в GCC создать >бинарник. Я юзаю Win, поетому --oformat binary не помогает.
Все должно работать, напиши как ты делаешь и что компилируешь...Какой компилятор используешь (DJGPP или что еще). Короче нужна более детальная информация...
Может ты пытаешься линковать с чем-то не тем ?
Удачи !!!


Ответ отправлен: 17.09.2003, 08:17
Отправитель: dr_dolhpin



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (31)
C / C++ (27)
Perl (6)
Builder / Delphi (21)
Pascal (22)
Basic / VBA (10)
Java / JavaScript (12)
PHP (12)
Криптография (9)
WinAPI (15)
Пользователю
Windows 95/98/Me (48)
Windows NT/2000/XP (60)
"Железо" (38)
Поиск информации (20)
Администратору
Windows NT/2000/XP (29)
Linux / Unix (11)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (8)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное