Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
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.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту 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.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||