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

Ассемблер? Это просто! Учимся программировать (FAQ)


Служба Рассылок Subscribe.Ru

Ассемблер? Это просто! Учимся программировать (FAQ)
______________________________________

Выпуск N 155

Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"

Дата выхода: 2001-12-14


Вопрос №1813

Здравствуйте,уважаемые эксперты.При выполнении 1программы
из рассылки №1 возникли следуюшие ошибки:
prog.asm(7):error A2008:syntax error:int20h
prog.asm(8):error A2046:missing double quotation mark in string
prog.asm(9):error A2046:messing double quotation mark in string
prog.asm(5):error A2006:undefined symbol:Message
Обясните,пожалуста,что я сделал не так?
Спомощью какого отладчика и как можно увидеть действие
программы. Спасибо за ответ.

Ответ

Здравствуйте, Юрий!
int 20h пишется раздельно.
Что то ты там с кавычками намудил.
Необъявил ты свой message, а обращаешься.
Прогу предъявлять вообще то надо!


Отправил эксперт: Painbringer (http://limanski.narod.ru - нечто наподобие домашней страницы)
Эксперт отправил ответов (всего): 263

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1814

Здравствуйте эксперты! В Линуксе при инсталляции невозможно достать диск из CDROM (даже кнопкой Open). Как такое сделать в Dos/Win (желательно фрагмент на Асме)?
EraSer

Ответ

Здравствуйте, EraSer!
Времени мало у меня. Но вот немного я покопался и кажись могу кое че посоветовать.

mov ax,1500h
xor bx,bx
int 2fh
mov fdr,cx

mov ax,1510h
;mov cx,fdr
mov bx,offset uprdata
mov es,seg ud1
int 2fh

ret

fdr db 0

uprdata:
length db 24 ; длина этой структуры
subunit db 0
comcode db 12
status dw 0
unused db 8 dup (0)
media db 0
addres dw offset cddata, seg cddata
bytes dw 2
unused2 db 4 dup (0)

cddata:
cdmode db 1
cdmedia db 1 ; для разблокирования 0

Сразу предупреждаю что опробировать это мне было некогда. Надрал это из одного сишного исходника.


Отправил эксперт: Painbringer (http://limanski.narod.ru - нечто наподобие домашней страницы)
Эксперт отправил ответов (всего): 264

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1821

Уважаемый Вал.Ик.!

Просто нет слов! Читал и пости прослезился! Сейчас полезу в архив, дабы восстановить в памяти (а кое-где и впервые прочитать) основные вехи рассылки.
Я давно уже поймал себя на мысли, что лично для меня эта рассылка стала просто необходимой. Придя утром на работу и не найдя в ящике свежего выпуска FAQ или нескольких вопросов читателей мне становится грустно. Причем и от того, что я не смогу помочь нуждающимся людям, и от того, что сам не узнаю что-нибудь нового и интересного.
Надеюсь, что подобные чувства одолевают не только меня, но и многих экспертов и простых читателей.
Поэтому выражаю глубокую признательность Олегу за его труд и надеюсь, что никакие новые системы не помешают взаимополезному общению экспертов и читателей.
За сим не прощаюсь и надеюсь еще встретиться на широких просторах рассылки!

P.S. Большое спасибо за теплые слова в мой адрес, постараюсь и впредь их оправдывать.

Ответ

Здравствуйте, Ayl!
Здравствуйте, Вал.Ик!

Можно я тоже че нибудь скажу на великом и могучем? Понял тов. Калашников не буду. Короче это полный привет. Вал.Ик. уже давно зарекомендовал себя как постоянный читатель рассылки с философскими взгядами и достаточно высоким проффесиональным уровнем. Сам то я как показала история им написанная появился хотя и давно, но не с самого начала, поэтому про то время ничего сказать немого, соответственно поговорю я о более поздних временах (рассылку получаю с 17го выпуска).
Много воды (и в рассылке в том числе) утекло с тех пор. Пережили и Майкла и Визара в месте с Х (кстати никуда я не отступал, просто если летом я отвечал почти на все вопросы, на которые мог), то сейчас "I have not so much time" или как там говорил наш незабвенный, красиво ушедший... Соответственно появляться в рассылке только как главный тяжелый артилерист не захотелось.
Собственно жду я скорее начала следующего семестра когда эксперты расправят плечи после сесии зачетов курсовиков и прочего (всё же я полагаю что большая часть экспертов студенты) и устроют очередную бойню с оживлениями рассылок оптимизацией и прочем. Кстати, Орландо, если читаешь рассылку лови привет (ну типа как в Поле чудес).
А Вы, Олег, если до сих пор не осознали какую штукенцию Вы сотворили то Вы... Уж даже и не знаю как бы Вас назвать... Ну что то вроде ГЕНИЯ только круче :). Так что еще раз прошу Вас не отбирать у людей любимую игрушку (рассылку можно вести даже только для одного Вал.Ика а ведь есть и другие читатели).
Короче всем спасибо и ... да что там...


Отправил эксперт: Painbringer (http://limanski.narod.ru - нечто наподобие домашней страницы)
Эксперт отправил ответов (всего): 265

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1825

Здравствуйте уважаемые эксперты !
Не подскажите ли Вы, как можно вывести листинг программы на экран разноцветными буквами и как выдать на экран текст файла, имя которого передано в командную строку (если командная строка пуста - выдать сообщение и звуковой сигнал).
Заранее очень благодарен!

Ответ

Здравствуйте, Shurik!
Ну текс файла можно выдать командой more file.txt
А насчет разноцветных букв, то читай из файла и выводи на экран, а цвет рандомайзом... :))).
Вот елка, то новогодняя будет. А вообще edit.com самый рулезный текстовый редактор. Он умеет копировать и делать отступы, а что еще надо.


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 135

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1822

Здравствуйте.
По поводу вопроса №1804.
Получил несколько ответов, но, к сожалениею, они не помогли. Повторю вопрос.Надо написать программу, резидент. Суть в следующем: в любом текстовом редакторе, при нажатии на клавишу печатается соответствующий символ, надо сделать чтобы и при отжатии клавиши печатался этот же символ (специальные клавиши обрабатывать не обязательно). Делаю так:
1. Перехватываю int09h.
2. В своем обработчике определяю сканкод нажатой клавиши (читаю из буфера в памяти, или через порт 60h).
3. Старший бит(7) сбрасываю.(0-нажатие, 1-отжатие)
4. Записываю сканкод обратно в буфер по адресу 0:401е (или 0040:001е - это ведь одно и тоже?)
5.Завершаю работу обработчика одним из 2-х способов:
5.1. Передаю управление старому обработчику.
5.2. Завершаю работу, как написано в TechHelp.
Ни один вариант не работает, ни под окнами, ни под досом(Win-FAR,VC-DOS).
В связи с этим - вопросы:
1. Правильно ли я обращаюсь к буферу?
2. Если не правильно, то как правильно?(желательно очень подробно, как, что, сколько и откуда читать и записывать)
3. Если правильно, то почему не работает?(тоже, как можно подробнее)
Если это реально, пожалуйста, переделайте прогу, чтобы работала или объясните очень подробно про работу с буфером(если ошбка в работе с ним).
Зарание благодарен.
Антон.
Код прилагаю.

Ответ

Здравствуйте, Anton!
1. как ты его перехватываешь. А возвращаешь управление ему обратно.
2. Правильно. Тока там вначале что-то надо заслать, чтобы указать тип команды(лучше чтение без извлечения)
3. Как одним из двух,вроде тока iret. А лучше jmp far ptr old_09h.
4. Сканкод никуда не пихай. (а вообще-то вспомнил,тебе же это и надо)
0:041a 2 адрес "головы" буфера клавиатуры (символ по этому адресу следующий)
0:041c 2 адрес "хвоста" буфера клавиатуры
0:041e 20H буфер клавиатуры. Здесь BIOS хранит ввод клавиш(голова и хвост указывают на адреса от 041eH до 043dH включительно).(тичхелп)
5. И еше сохраняй флаги,а то подозрительно.
Если не разберешься,то напиши я тебе пришли свою прогу, где в-общем-то есть это. Я с неймаялся около месяца. Зато изучил Дос.


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 136

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1827

Привет!
Стыдно признаться не как не могу понять, что Я не правильно делаю, а это одна из первых программ расылки, не хочет работать и всё тут! Из софта у меня TASM5, комп - первый пентюх.
На всяки случай Я приложил исходник, и ошибки которые выдаёт TASM.

Удачи!

Ответ

Здравствуйте, mora!
В общем компилятор же пишет Undefined symbol INT_21_vect. (неопределенный символ инт 21 вект). А во вторых в 24-ой строке после dd поставь пробел перед вопросом. Должно сассемблироваться. А насчет работы... А зачем досовское прерывание перехватывать...Ну ладно хакер начинающий, твое дело. И еще завершайся 31-ой функцией 21-го прерывания в смысле хексе. И еще пусть твоя прога где-нить в доступном месте сохраняет адреса старого обработчика,чтоб потом можно было б восстановить без перезагрузки.


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 137

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1818

Почему при линковании *.css - файла в HTML и одновременном задании в качестве фона рисунка из графического файла почему-то не находится (не видно результатов форматирования) *.css - файл? Зато при явной вставке его содержимого между тегами всЈ идет нормально!?!?

Ответьте, пожалуйста.

Ответ

Привет Антон!
Дело в том, что *.css нужно помещать в ту же папку, где находится страница. Не в коем случае не "http://www.dryice.narod.ru/vid.css", а то буду все различные ошибки. Нужно так: "vid.css".

Погляди как у меня на сайте: http://www.archivs.narod.ru - Большой архив програм)
Эксперт отправил ответов (всего): 2

Экспертная группа: Пользовательская работа с Windows


Вопрос №1827

Привет!
Стыдно признаться не как не могу понять, что Я не правильно делаю, а это одна из первых программ расылки, не хочет работать и всё тут! Из софта у меня TASM5, комп - первый пентюх.
На всяки случай Я приложил исходник, и ошибки которые выдаёт TASM.

Удачи!

Ответ

Здравствуйте, mora!
Все в принципе правильно, только в 24 строке надо не
"Int_21h_vect dd?" а "Int_21h_vect dd ?" (через пробел).


Отправил эксперт: ScientiaCupidus
Эксперт отправил ответов (всего): 14

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1829

Привет
В Norton Commander 5.0 был файл NC.EXT в котором прописывались расширения файлов и программы, которые эти файлы открывали, а есть ли такой же файл в FAR'е?

Ответ

Здравствуйте, Student!
Фар берёт информацию о запускаемой программе из реестра Windows, поэтому, если надо добавить расширение - нажимаешь в проводнике на файл правой кнопкой мыши, с нажатой клавишей шифт, нажимаешь "Открыть с помощью", выбираешь прогу для этого типа файлов. Если хочешь насвегда там прописать её - ставишь флажок - "Всегда использовать эту программу".
Если надо изменить настройки типа файлов, лезешь в проводник "Вид - свойства папки - типы файлов". Всё, что изменяется таким образом действует как в проводнике, так и в Фаре.


Отправил эксперт: kbpS
Эксперт отправил ответов (всего): 23

Экспертная группа: Пользовательская работа c DOS

Вопрос №1827

Привет!
Стыдно признаться не как не могу понять, что Я не правильно делаю, а это одна из первых программ расылки, не хочет работать и всё тут! Из софта у меня TASM5, комп - первый пентюх.
На всяки случай Я приложил исходник, и ошибки которые выдаёт TASM.

Удачи!

Ответ

Здравствуйте, mora!
Все эти шесть эрроров из-за одной единственной 24 строки: у тебя слиплись dd и вопросительный знак... стыдно товарищи! ;)


Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 245

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1828

Здравствуйте, уважаемые эксперты!
У меня к вам одие довольно размытый вопрос
Недавно видел прогу, которая читает запорченные дискеты,
те которые ДОС уже не могЁт
Так вот встал передо мной вопрос каким макаром она это делает? Я слышал, что нада перепраграммировать контролер
(то есть напрямую через порты ввода-вывода)
токмо инфы по ним никакой / помогите кто чем может
А если не жалко то наваяйте примерчик плз

Заранее благодарю
постоянный подписчик CoolerTheGreat

Ответ

Здравствуйте, CoolerTheGreat!
Не знаю как дискеты, но сидюки можна читать все, если несколько раз подряд одну и ту же запорченную дорожку. Вот почему 2000 винды читают все (якобы) диски, а в досе я когда то писал такую прогу, но она не все диски все равно читала, но те что раньше не читались 50% зачитались. А вообще их надо мыть с мылом (в одном очень умном журнале вычитал). А ты про что вообще? про дискеты??? не, их не нада! попортяться! а вообще принцип я описал тебе, могу прислать и прогу ту (тока она для СD)


Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 246

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1831

Здраствуйте, у меня проблема с принтером, отправляешь документ на печать, а если понадобилось удалить его из очереди печати, то выскакивает сообщение типа "...у вас нет прав, обратитесь к одминестратору сети...", какие права ему нужны?, если принтер подключен ко мне! и документ на печать отправлял я!!!

Посоветуите, что надо покавырять

P.S. Иногда такая же фигня получается и при создании/удалении каталога на локальном диске.

Ответ

Здравствуйте, Serzh!
Просто, если к тому моменту, как ты пытаешься снять задание, оно уже(хотя бы частично) прошло на принтер, то винда уже выводит его из юрисдикции интерфейса (а значит и юзера) переводя в категорию "закрытых" процессов.
P.S. Терминология вольная, но надеюсь понятная.


Отправил эксперт:
Эксперт отправил ответов (всего): 1

Экспертная группа: Пользовательская работа с Windows

Вопрос №1831

Здраствуйте, у меня проблема с принтером, отправляешь документ на печать, а если понадобилось удалить его из очереди печати, то выскакивает сообщение типа "...у вас нет прав, обратитесь к одминестратору сети...", какие права ему нужны?, если принтер подключен ко мне! и документ на печать отправлял я!!!

Посоветуите, что надо покавырять

P.S. Иногда такая же фигня получается и при создании/удалении каталога на локальном диске.

Ответ

Здравствуйте, Serzh!
Если принтер подключен к твоему компу через lpt, то этого не должно быть. Ты как его подключил, через сеть, что ли. Второе ты под НТ-хой сидишь что ли. Там наверное права надо поставить если ты не администратор.


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 138

Экспертная группа: Пользовательская работа с Windows

Вопрос №1829

Привет
В Norton Commander 5.0 был файл NC.EXT в котором прописывались расширения файлов и программы, которые эти файлы открывали, а есть ли такой же файл в FAR'е?

Ответ

Здравствуйте, Student!

Пункт меню Command -> File associations
А файла похоже и нет. Или я его просто не нашел


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 113

Экспертная группа: Пользовательская работа c DOS

Вопрос №1829

Привет
В Norton Commander 5.0 был файл NC.EXT в котором прописывались расширения файлов и программы, которые эти файлы открывали, а есть ли такой же файл в FAR'е?

Ответ

Здравствуйте, Student!

Дополнениние.

Информацию о типах файлов FAR хранит в реестре в
HKEY_USERS -> user -> SOFTWARE -> Far -> Associations


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 114

Экспертная группа: Пользовательская работа c DOS

Вопрос №1831

Здраствуйте, у меня проблема с принтером, отправляешь документ на печать, а если понадобилось удалить его из очереди печати, то выскакивает сообщение типа "...у вас нет прав, обратитесь к одминестратору сети...", какие права ему нужны?, если принтер подключен ко мне! и документ на печать отправлял я!!!

Посоветуите, что надо покавырять

P.S. Иногда такая же фигня получается и при создании/удалении каталога на локальном диске.

Ответ

Здравствуйте, Serzh!
Залезь в реестр, только осторожно. Запусти C:\Windows\Regedit.exe
Там открой: HKEY_CURRENT_USER
а затем:
Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
А там, если нет, то создай: NoPrinters, NoDeletePrinter, NoAddPrinter
(параметр DWORD) и присвой всем '0'.
Удалятся и добавлятся точно будут.


Отправил эксперт: Гуров Вячеслав (http://www.archivs.narod.ru - Большой архив програм)
Эксперт отправил ответов (всего): 3

Экспертная группа: Пользовательская работа с Windows

Вопрос №1825

Здравствуйте уважаемые эксперты !
Не подскажите ли Вы, как можно вывести листинг программы на экран разноцветными буквами и как выдать на экран текст файла, имя которого передано в командную строку (если командная строка пуста - выдать сообщение и звуковой сигнал).
Заранее очень благодарен!

Ответ

Здравствуйте, Shurik! В смысле ? Если прогу надо такую написать то это просто - открываешь файл с текстом проги и дальше дело техники :)
а чтобы узнать что там было в коммандной строке то надо делать так :
.model tiny
.code
org 80h ;по смещению 80h (в PSP) лежат :
cmd_length db ? ;длинна строки параметров
cmd_line db ? ;и она сама ;) (завершающаяся 0)
org 100h
begin:
mov ah,40h
mov cx,cmd_length
mov dx,offset cmd_line
xor bx,bx
int 21h ;(вывод строки длинной cx на экран)
retn
end begin

только надо помнить что DTA по умолчанию установлено тоже на 80h
так что любая операция поиска файлов приведет к её стиранию.
и еще так как длинна ком. строки byte то все что не влазит теряется ;( anyway вся строка лежит в сегменте environment variables адрес которого лежит в PSP по смещениб 3Eh (по моему не помню) Там надо найти переменную cmdline, в ней лежит полная строка параметров включая имя нашего файла (который запущен сейчас) с путем.


Отправил эксперт: Bart Simpson
Эксперт отправил ответов (всего): 28

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1832

Здравтвуйте!
Когда я в программе masm611 сохраняю файлы
*.asm
*.bak
*.mak
*.sts
в c:\masm611\bin то masm611 создаёт файлы *.com или *.exe, но если я сохраню их в другой директории, то такая функция недоступна. Я пологаю нужна настроить в оциях, но что именно нужно сделать я незнаю.

Ответ

Здравствуйте, Дмитрий!
Никаких опций. Все в автоэкзеке в строке SET PATH... что вы как маленькие, ей-богу!


Отправил эксперт: Broken Sword (http://www.implozia.ru/imp/music/zemfira-traffic.mp3 - незнаю, зачемто вплел)
Эксперт отправил ответов (всего): 247

Экспертная группа: Работа с MASM/TASM

Вопрос №1836

Подскажите где можно почитать(книги,I-net) o comand.com, config.sis,bios

Ответ

Здравствуйте, Вадим!
Народ! Ну сколько можно задавать такие вопросы??? Книги можно достать в книжном магазине. Например, в Питере можно съездить в ДК им. Крупской, что на Елизаровской и найти все что надо. А в интернете... Ну неужели вы не знаете, что такое писковики и не умеете ими пользоваться??? Странно, как же вы тогда добрались до этой рассылки и сайта Олега??? Поставьте себе Коперника или ВебМашин и они за вас все сами найдут!

Ладно, это было лирическое отступление.

Много документации можно найти на www.emanual.ru
Еще можешь зайти сюда http://www.infocity.kiev.ua
Ну и сюда тоже глянь http://www.rusdoc.ru/index.html
А еще проверь ящик, я кое-что тебе скинул, что нашел на компе, правда есть еще много всего, но было просто в лом искать. :)))


Отправил эксперт: Tiger (www.tigeer.narod.ru - Что-то вроде того)
Эксперт отправил ответов (всего): 9

Экспертная группа: Пользовательская работа c DOS

Вопрос №1838

Уважаемые эксперты!
Каким образом можно заставить внутренний динамик воспроизводить wav - файлы в W95?
После покупки моего Notebook Compag звук воспроизводился на внутренний динамик. Впоследствии, видно, что-то удалилось.
Заранее благодарен, Valentin.

Ответ

Здравствуйте, Valentin!
Сначадо надо проверить уровень громкости, выставляемый спецклавишами на ноутбуке, поставить его на максимум, потом установить регулятор громкости на максимум, если такой показывается около часов внизу экрана. Может из-за этого звук пропал. Если регулятора около часов нет, то наверное неправильно установлены драйвера. Надо проверить на вкладке "Установка" в свойствах значка "Мой компьютер". Если на компьютере нет звуковой платы вообще, то была раньше программка, которая имитировала звук через системный динамик. Кажется speaker.sys файл назывался, прописывался в win.ini. Недостаток - пока звук идёт, комп висит, даже мышь не ездит. Но короткие звуки, типа схемы "Утопия" работали вполне прилично, всякие, там, пикалки или пукалки (полсекунды). Если интересно, могу поискать (если комп без звуковушки).


Отправил эксперт: kbpS
Эксперт отправил ответов (всего): 24

Экспертная группа: Пользовательская работа с Windows

Вопрос №1837

Уважаемые эксперты!
Подскажите, пожалуйста, где можно достать описание WinAPI (функции с параметрами, структуры, сообщения...)
Язык (английский, русский) некритичен, но желательно конечно на отечественном :)

Ответ

Здравствуйте, John!
msdn.microsoft.com_Нет на русском! И никогда не будет_на нем
_Хотите писать, учите английский, - все бестселлеры по программированию_написаны на инглише,а ждать перевода, простите, - пустая трата времени


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 54

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1837

Уважаемые эксперты!
Подскажите, пожалуйста, где можно достать описание WinAPI (функции с параметрами, структуры, сообщения...)
Язык (английский, русский) некритичен, но желательно конечно на отечественном :)

Ответ

Здравствуйте, John!
Очень много и подробно по Win32 API в MSDN от Microsotf.
Можно использовать help-ы от Borland C++ версий 4.5 и следующих выпусков для платформы Win32.


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 12

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1835

Здравствуйте, Эксперты.
Просветите, пожалуйста.
Как блокировать с помощью API? все физические интерфейсы(монитор, клавиатура, порты, прерывания и т.п.),
кроме одного избранного? Есть ли возможность низкоуровневого (асм)контроля вышеперечисленных рессурсов у приложений W9x, NT?
Можно ли в старых Уи заменить стандартные функции заменой DLL,
как прописать новую DLL, помогите найти описание содержимого этих библиотек, их функционального разграничения.

Ответ

Здравствуйте, sai!
Все можно, если осторожно...
Боюсь придется писать тебе драйвера под Win9x, WinNT, поскольку физические устройства как бы недоступны напрямую из юзеровского уровня привелегий и специализированных API для этого нет. Поэтому контроль на физ. уровне в этих системах осуществляется драйверами на уровне ядра, а это, по сути, ядерные драйвера. Второй вопрос не очень понятен и требует дополнительного пояснения.


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 13

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1830

Привет эксперты, помоготе плиз разобратся с функцией CreateFile, мне непонятно какой вид должна иметь структура Security_struc, смещение которой я передаю. И где взять дискриптор(HANDLE) который передается последним.
За пример буду очень благодарен ;)

P.S. Случайно не подкинете ссылки на русские онлайновые справочники WinApi?

Ответ

Здравствуйте, Serzh!
В Winbase.h продекларировано:
typedef struct _SECURITY_ATTRIBUTES {
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
nLength - размер этой структуры в байтах.
lpSecurityDescriptor - указатель на область памяти, где хранится дескриптор безопасности для этого объекта (DACL).
bInheritHandle - флаг наследования дескриптора.
Этот парамет чаще всего устанавливают в NULL и по умолчанию наследование дескриптора запрещено. Он имеет смысл только в защищенных системах: для файлов - это использование NTFS томов, для других устройств только при соответствующей поддержке со стороны системы.

Последний параметр в ф-ции CreateFile имеющий тип HANDLE может быть NULL, иначе он должен указывать на дискриптор открытого файла с доступом GENERIC_READ. В этом случае ф-ция использует атрибуты файла, дискриптор которого мы передаем, для открытия нашего файла и игнорирует значения флагов dwFlagsAndAttributes.
Этот механизм работает только при открытии сущ. файла. При создании файла, как пишут разработчики, этот параметр игнорируется.
Win95 - не поддерживает этот параметр.
Также, не забывай, что при неудачном исполнении CreateFile возвращает INVALID_HANDLE_VALUE ((HANDLE)-1), а не NULL.
А лучше всего читай MSDN.


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 14

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1838

Уважаемые эксперты!
Каким образом можно заставить внутренний динамик воспроизводить wav - файлы в W95?
После покупки моего Notebook Compag звук воспроизводился на внутренний динамик. Впоследствии, видно, что-то удалилось.
Заранее благодарен, Valentin.

Ответ

Здравствуйте, Valentin!
Видимо ваш внутренний динамик(если вы имеете в виду эту кругляшку в внутри корпуса на мат. плате, а не встроенные почти во все ноутбуки небольшие акустические системы) просто был запрограммирован на воспроизведение определенной мелодии (похожей на звук старта Виндоуз), чтобы сэкономить пресловутую электроэнергию. Внутр. динамик не предназначен для воспроизведения wav файлов, как таковых, потому что принимает информацию о звуке в другом виде (типа ноты -ля -ми и т.д. =).


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 80

Экспертная группа: Пользовательская работа с Windows

Вопрос №1840

Здравствуйте, уважаемые эксперты.

Вопрос вот в чем:
после покупки нового компьютера меня кое-что расстроило.
Раньше играя в quake я мог включить в winamp'е свою любимую группу Metallica и наслаждаться процессом - звуки выстрелов и вопли умирающих звучали на фоне музыки. Новая материнская Super Grace со встроенной звуковой AC97 такой радости мне не доставила - на выход идет звук только с одной программы.
Потом я поставил Windows2000 - в ней какая-то программная эмуляция микшера или чего не знаю - и почти все программы выводили звук одновременно, кроме тех, видимо, которые обращались к железу непосредственно (nfs4). W2000 - такую хламину я у себя держать не хочу. Я думаю есть наверное какой-то драйвер для 98-ой. Подскажите, где достать. Дело даже больше не в играх: скажем когда в инете не могу музыку слушать, боюсь пропустить звуки аськи. Заранее спасибо.

Ответов типа поставить в winamp direct sound plugin не предлагать - в 2000-ой все работает безо всяких там direct sound.

Ответ

Здравствуйте, kosstik!
Попробуй дрова Via-Service Pack 4in1 , качнуть можно с www.via.com.tw
Ежель плата не на чипсете Via, а на чипсете AMD или Intel, попробуй скачать драйвера на маму с их сайтов. Программно эти мелкие недочеты можно решить, другой вопрос - устроит ли тебя скорость выполнения программ после таких манипуляций с программным звуком.

ЗЫ. Я с этим интегрированным AC97 мучался-намучался - в результате все равно взял нормальную звуковую карту...


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 81

Экспертная группа: Пользовательская работа с Windows

Вопрос №1842

Здравствуйте эксперты.
Мой друг купил себе компьютер и не сколько игрушек. Ему так не терпелось поиграть, что он не прочитал не одной строчки про windows (да же книжки не держал windows для «чайников»). Вставил компашку, и установил игрушки, благо для этого особого ума не надо, но вот беда одна игрушка не захотела запускаться (вернее пару раз запустилась и всё). Друг мой, изнывая от нетерпения и желания, просто локти готов был кусать от незнания как эту капризную игру запустить. И тут ему пришла "светлая" мысль……!!!! Переустановить игрушку. Но по причинам выше указанным он поступил весьма радикально (однажды он видел, как в нортоне удаляют файлы) запустил нортон и удалил папку, в которой находилась игрушка. После всего со спокойной совестью стал заново ставить игру, но не тут то было…….. инсталлятор определяет наличие этой игры на компьютере и на отрез отказывается её устанавливать. Признаюсь, я в замешательстве, ведь моя репутация «супер профессионала по компьютерам пошатнулась» и потому прошу о! помощи. А конкретно имею следующие вопросы:
1. Каковы причины обнаружения инсталляторам стертой игрушки?
2. Как мне помочь своему горе-другу?

Ответ

Здравствуйте, Федор Козлов!
1. Инсталятор прописал информацию об игрушке в реестре или , что еще, хуже , но встречается редко оставил конфигурационный файл в папке Windows.
2. Возмите любой чистильщик реестра, например, RegCleaner, - он должен удалить ключи реестра к несуществующим файлам или программам и/или попробуйте вручную в редакторе реестра ввести название игры или ее производителя и удалить все разделы, касающиеся этой игры.


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 82

Экспертная группа: Пользовательская работа с Windows

Вопрос №1839

Могут ли макровирусы содержаться в .rtf файлах? Или только в .doc?

Ответ

Здравствуйте, TanaT!
Нет, это спецификация .doc-файлов, а если программа через которую запускается этот файл не поддержкивает макросы, то вирусы вообще не будут запускаться.


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 83

Экспертная группа: Пользовательская работа с Windows

Вопрос №1834

Проблема следующая. На системе Athlon 800, motherboard - ASUS (что в принципе неважно), стоит Millenium и PCI-ная звуковуха. Звук не работает. При попытке установить драйвера с CD, Millenium говорит, что драйвера не прошли проверку в лабораториях микрософт, и поэтому не будут установлены (и это он говорит про драйвера, которые с компашки он сам находит как наиболее подходящие). Это еще не самое интересное. Удаляю звуковую карту из устройств, перезагружаюсь, Millenium находит звуковую карту PCI Audio Device и ставит ее САМ неправильно (причину см. выше). После этого она, естественно не работает.
Ситуация осложнена тем, что вообще непонятно что за звуковуха, т.к. она шла мимо комплектующего листа (комп куплен примерно полгода назад) и не работала с самого начала. Потом ее один спец заставил работать под W98SE, а потом хозяева поставили линолеум и поехало...
Комп разбирать крайне нежелательно.
Millenium считает что это ESS, но т.к. дрова не работают, наверное он ошибается.

Ответ

Здравствуйте, Aton!
Дык, попробуйте поставить Win98SE...


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 84

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1838

Уважаемые эксперты!
Каким образом можно заставить внутренний динамик воспроизводить wav - файлы в W95?
После покупки моего Notebook Compag звук воспроизводился на внутренний динамик. Впоследствии, видно, что-то удалилось.
Заранее благодарен, Valentin.

Ответ

Здравствуйте, Valentin!
Существует драйвер для W95, с помощью которого можно использовать PC Speaker как ограниченной функциональности звуковуху. Поищи на серверах, такое мне попадалось.
Если найду у себя - вышлю.


Отправил эксперт: Sheriff
Эксперт отправил ответов (всего): 9

Экспертная группа: Пользовательская работа с Windows

Форма подачи вопроса

ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!

Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

Прилагаемая программа (если необходимо):


Регистрация в качестве эксперта

Архив выпусков


Управляющий рассылкой,

Калашников Олег: Assembler@Kalashnikoff.ru
ICQ No.:
68951340
URL сайта подписчиков: http://www.Kalashnikoff.ru

Рассылка 'Ассемблер? Это просто! Учимся программировать (FAQ)' Рассылка 'Ассемблер? Это просто! Учимся программировать'


(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.


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

В избранное