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

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


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

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

Выпуск № 577
от 25.06.2003, 04:21

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


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

Gibbel
Статус: Профессиональный
Общий рейтинг: 107.9
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
Ramzes
Статус: Профессиональный
Общий рейтинг: 125.17
URL: Microsoft homepage
[Подробней >>]
St
Статус: Опытный
Общий рейтинг: 107.63
[Подробней >>]
 
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.07
URL: Программирование
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 122.02
URL: мой сайт
[Подробней >>]
Hangatyr
Статус: Опытный
Общий рейтинг: 114.84
[Подробней >>]
 
masquer
Статус: Профессиональный
Общий рейтинг: 137.34
[Подробней >>]
Eugene
Статус: Профессиональный
Общий рейтинг: 107.38
URL: мощный файловый архив
[Подробней >>]
Pin
Статус: Опытный
Общий рейтинг: 116.66
URL: My HOMEPAGE
[Подробней >>]
 
Дмитрий
Статус: Профессиональный
Общий рейтинг: 139.4
[Подробней >>]
Tigran K. Kalaidjian
Статус: Профессиональный
Общий рейтинг: 119.48
URL: Методы оптимизации работы ПК
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 112.34
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
_vt
Статус: Опытный
Общий рейтинг: 122.16
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 114.05
[Подробней >>]


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

Вопрос № 3525. Привет Эксперты!!! Подскажите пожалуйсто как сделать окно активным и вывести его поверх всех (не TOP... (ответов: 4)
Вопрос № 3526. Здаров! Может кто-нибудь кодит на асме под *никсами, конкретнее под Linux. Nasm, etc. И ещё, в винда... (ответов: 1)
Вопрос № 3527. Здравствуйте, помогите пожалуйста - запуталась с таблицами импорта и экспорта. Не сможете мне объясн... (ответов: 3)
Вопрос № 3528. Доброе время суток уважаемые эксперты.Извиняйте,что воерос не по теме.Ни как ни могу установить родн... (ответов: 1)
Вопрос № 3529. Доброе время суток уважаемые эксперты.Извиняйте,что воерос не по теме.Ни как ни могу установить родн... (ответов: 1)
Вопрос № 3530. Большое спасибо за внимание к вопросу №3502! Есть ли способ заставить SIce невываливаться? Как обойт... (ответов: 2)
Вопрос № 3531. Здрасте Эксперты! Ответте пожалуйсто на несколько вопросов: 1. Какое сообщение получает окно, когда ... (ответов: 4)
Вопрос № 3533. Добрый день Всем!!!Где можно взять архивные файлы рассылки. Хотел взять c http://www.Kalashnikoff.ru... (ответов: 4)
Вопрос № 3534. Привет Комментарий к моим Вопросам № 3516 и 3509 и тд касавшимся созданию достаточно точного таймера... (ответов: 2)
Вопрос № 3536. Здравствуйте Эксперты! У меня к вам два вопроса! 1. Как так что MS-DOS писал не Гейтс! В любой книжк... (ответов: 4)

Вопросов: 10, ответов: 26


 Вопрос № 3525

Привет Эксперты!!!
Подскажите пожалуйсто как сделать окно активным и вывести его поверх всех (не TOPMOST). Пробовал SetWindowPosв - никакого эффекта, SetActiveWindow - тоже. Первая работает только если поставить TOPMOST, но окно не делается активным, а вторая функиция вообще никак не реагирует...
Подскажите еще как сделать графический интерфейс. Например у Winampа нет ни одного окна с классом Button, а все кнопочки нарисованы. Как это сделано?
И еще вопрос: никто не знает, Зубков собирается писать продолжение своей первой книги (или она у него не первая - это я про "Assembler для DOS, Windows и Unix). На него вся надежда - другие ерунду пишут!!!
Примного благодарен...



Вопрос отправлен: 19.06.2003, 22:57
Отправитель: GHopper

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

Отвечает Gibbel

Добрый день, GHopper!
1. Попробуй SetForegroundWindow(HWND)
2. На самом деле, у Winampа (по крайней мере, у второго) есть окна с классом Button, но они имеют стиль BS_OWNERDRAW. А вообще, перехватываешь сообщения окна WM_PAINT, WM_NCPAINT, WM_ERASEBKGND и тому подобные, и прорисовываешь все, что надо, вручную...

Ответ отправлен: 20.06.2003, 10:25
Отправитель: Gibbel


Отвечает Ramzes

Доброе время суток, GHopper!
1) SetForegroundWindow
2) Ну способов много... Например у класса CDC есть функция DrawFrameControl

Ответ отправлен: 23.06.2003, 13:56
Отправитель: Ramzes


Отвечает St

Привет, GHopper!
1) Насколько я понимаю SetActiveWindow служит для выведения наверх одного окна из нескольких, но относящихся к одному потоку (одной программе). Может быть пройдет SetForegroundWindow?
2) На сайте wasm.ru в исходниках есть пример программы в большим числом кнопок нарисаванных и работающих самыми разными способами (с некоторыми пояснениями), посмотрите и вы поймете что не обязательно использовать Buttons.
St

Ответ отправлен: 20.06.2003, 11:14
Отправитель: St


Отвечает Bob Johnson

Здравствуйте, GHopper!
1. SetForegroundWindow
2. Рисовать самому. Т.е. на WM_PAINT сам рисуешь, на WM_?BUTTONDOWN определяешь, куда нажали мышкой и рисуешь еще раз и т.д. В этом есть как свои плюсы, так и минусы.

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 20.06.2003, 15:24
Отправитель: Bob Johnson


 Вопрос № 3526

Здаров! Может кто-нибудь кодит на асме под *никсами, конкретнее под Linux. Nasm, etc. И ещё, в виндах довольно удобно юзать винапи, а есть ли нечто подобное в никсах? Ну, я не знаю, KDEapi, QTapi и в таком роде? Вообще хоть кто-нить что-то реальное написал? Можно ли глянуть, также приветствуются ссылки. И эт что чаще, а главное удобнее использовать при программировании в никсах? Как я смог заметить это С и С++, так ли это? Пишу сюда, тк читаю давно и люди вроде как грамотные отвечают ;)



Вопрос отправлен: 19.06.2003, 22:54
Отправитель: bezbazara (bezbazara@pisem.net)

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

Отвечает Broken Sword

Здравствуйте, bezbazara!
как то странно пришло два одинаковых по смыслу вопроса сразу... никаких аналогов *api нету - здесь Linux больше смахивает на этакий "DOS в защищенном режиме", т.е. все вызовы организуются через int 80h (или через Call на 0:7, зависит от реализации).
Насчет темы асм под никс как таковой то есть у меня 6 лаб сделанных на чистом асме (в основном по IPC), одна даже по работе с TCP/IP. Насчет ссылок - есть в нете только один стоящий сайт на эту тему - www.linuxassembly.org (или без www, не помню).
Кстати, лабы лежат у меня на сайте (brokensword.narod.ru)

Ответ отправлен: 19.06.2003, 23:22
Отправитель: Broken Sword


 Вопрос № 3527

Здравствуйте, помогите пожалуйста - запуталась с таблицами импорта и экспорта. Не сможете мне объяснить как не используя отладчики создать таблицу хотябы импорта (в холостую). Т.е. мне не понятен сам механизм поведения винды до момента появления любого окошка... Если кто нибудь знает, объясните подробно чем отличаются следующие понятия: TLS ImportTable, BoundImport, Relocation, VirtualSize, VirtualOffset, RWASize, RWAOffset... Если можно подробно вроде - винда открывает файл и читает из заголовка... и ...
Простите, но то что пишут в общих словах в описании PE заголовка для меня загадка...
Заранее огромное всем спасибо...



Вопрос отправлен: 19.06.2003, 23:31
Отправитель: Swetlana (subscribe_my@rambler.ru)

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

Отвечает Hangatyr

Доброе время суток, Swetlana!
Ok, встречный вопрос - а как это сделать с помощью отладчика?
Берешь файл, дописываешь туда какие-нибудь данные, вставляешь новую таблицу секций, указываешь имя, оффсет и другие параметры.
TLS - это секция в которой размещаются глобальные переменные для потока (т.е. каждый поток будет иметь свою копию).
ImportTable - таблица импорта, тут все понятно.
Relocation - если файл будет загружен не по тому image base, который указан в заголовке, то загрузчику придется производить настройку адресов - для этого и существует секция .reloc.
VirtualSize - размер секции, округленный в соответствии со значением выравнивания.
RWAOffset? Может, RAWOffset? Тогда это файловое смещение.
С RAWSize примерно тоже самое. Вообще, проще почитать какое-нибудь описание PE-формата - там все достаточно подробно описано.


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


Отвечает Ramzes

Здравствуйте, Swetlana!
При загрузке исполняемого файла Винда читает заголовок оного, откуда определяет местоположение таблицы импорта. Таблица импорта представляет из себя таблицу, где записаны имена используемых функций, и в каких модулях эти самые функции находятся. Если данный модуль еще не загружен, то ОС подгружает его. Далле она читает из таблицы экспорта имена интересующих нас функций и их адреса. В таблице экспорта написаны Виртуальные адреса(RWA - Relational Virtual Address), то есть смещение от начала модуля. ОС считывает эти смещения, прибавляет к их базовому адресу модуля и записывает в таблицу импорта.

Ответ отправлен: 23.06.2003, 13:51
Отправитель: Ramzes


Отвечает masquer

Добрый день, Swetlana!
Если мне кто-то обяснит смысл фразы "как не используя отладчики создать таблицу хотябы импорта", то я сразу же в монастырь уйду (женский).
Девушка (или не девушка - не суть важно) - берете формат PE заголовка (его везде можно найти) и вдумчиво читаете до тех пор, пока просветление не снизойдет. Ну, если не снизошло, то "если с первого раза не получилось - парашютный спорт не для вас".
Такие пошлости в 2-х словах не рассказываются, тем более что литературы - море. Если что-то конкретно не понятно, это другое дело, а так...

Ответ отправлен: 20.06.2003, 11:16
Отправитель: masquer


 Вопрос № 3528

Доброе время суток уважаемые эксперты.Извиняйте,что воерос не по теме.Ни как ни могу установить родной драйве жидкокристального монитора.Драйвер с диска после запуска программы установки ,выдается сообщение ,что все нормально.
А после перезагрузки драйвер не установлен. Сначала даже вис копьютер.Система Win98,правильно опознает тип монитора
SyncMaster 152S. Драйвер имеет цифровую подись.Windows не очень довно устанавливался.А устоновка родного драйвера мне кажется очень желательна ,может улучшется некотрве параметры.
Не подскажете в чем может быть дело?



Вопрос отправлен: 20.06.2003, 05:48
Отправитель: Yury

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

Отвечает Eugene

Доброе время суток, Yury!
Дело может быть в том, что драйвер для НТ систем, а не для вин9х. С любыми нормальными дровами идёт описание. Посмотри в описании, для чего и для какой винды предназначен данный драйвер.

Ответ отправлен: 20.06.2003, 15:12
Отправитель: Eugene


 Вопрос № 3529

Доброе время суток уважаемые эксперты.Извиняйте,что воерос не по теме.Ни как ни могу установить родной драйве жидкокристального монитора.Драйвер с диска после запуска программы установки ,выдается сообщение ,что все нормально.
А после перезагрузки драйвер не установлен. Сначала даже вис копьютер.Система Win98,правильно опознает тип монитора
SyncMaster 152S. Драйвер имеет цифровую подись.Windows не очень довно устанавливался.А устоновка родного драйвера мне кажется очень желательна ,может улучшется некотрые параметры.
Не подскажете в чем может быть дело?



Вопрос отправлен: 20.06.2003, 05:51
Отправитель: Yury

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

Отвечает Bob Johnson

Добрый день, Yury!
Сходи в интернет на сайт производителя (т.е. на samsung) и посмотри там новую версию драйвера.
Еще - у тебя Windows 98 SE? Если не SE, то с ним могут быть проблемы - его перестали поддерживать.
Ну и последнее - если драйвер все-таки не станет, выбери любой драйвер монитора, который держит твое разрешение (1024х768 видимо) и поставь частоту обновления экрана 60 Hz - для TFT надо ставить частоту именно 60, на ней монитор будет лучше работать.

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


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


 Вопрос № 3530

Большое спасибо за внимание к вопросу №3502!
Есть ли способ заставить SIce невываливаться?
Как обойти этот баг и отлаживать прогу?



Вопрос отправлен: 20.06.2003, 09:51
Отправитель: nix (nix@pisem.net)

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

Отвечает Broken Sword

Приветствую Вас, nix!
это не баг - это так задумано. Для того, чтобы понять как обойти эту "задумку" - разберись сначала в условии возникновения UnhandledExeption. Ищи доку по SEH, все что найдешь - читай и качай новую. У меня ее вагон и маленькая тележка. Начни с статьи Мэтта Питрека "A crash course ... structure exception handling", она официально валяется на микрософтском сайте

Ответ отправлен: 20.06.2003, 11:52
Отправитель: Broken Sword


Отвечает masquer

Приветствую Вас, nix!
Хм, вообще было бы неплохо приводить сам вопрос - а то я сути всей уже и не помню. Это, кажется, про вываливание по эксепшену? Ну, можно либо поставить IceDump, который сам скрывает айс, можно вручную поменять названия драйверов. Правда, могут быть и более сложные случаи...

Ответ отправлен: 20.06.2003, 11:09
Отправитель: masquer


 Вопрос № 3531

Здрасте Эксперты!
Ответте пожалуйсто на несколько вопросов:
1. Какое сообщение получает окно, когда юзер тычет Ctrl+Tab. Мне надо сделать так, чтобы юзер не мог переключиться на другие окна.
2. Как загрузить стандартную иконку. Какда-то баловался с Restoratorом, видел, что все они находятся в одном файле...
3. Какой стиль надо присвоить окну, чтобы нельзя было изменять его размер. Или писать обработчик на WM_SIZE????
Огромное спасибо!!!



Вопрос отправлен: 20.06.2003, 13:50
Отправитель: GHopper

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

Отвечает Ramzes

Доброе время суток, GHopper!
1)наверное Alt+TAB ? Твое окно не получает этого сообщения...
2) LoadIcon


Ответ отправлен: 23.06.2003, 14:08
Отправитель: Ramzes


Отвечает Bob Johnson

Добрый день, GHopper!
1. Видимо Alt-Tab? Это невозможно, дело тут не в сообщении, за это отвечает Windows (все возможные попытки этого избежать будут не очень красивыми).
2. LoadIcon (0, идентификатор) - см. MSDN и функцию LoadIcon для более подробной информации о возможных идентификаторах.
3. Не используй стилей вроде WS_SIZEBOX при создании окна, тогда его размер будет изменять невозможно.

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


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


Отвечает Pin

Добрый день, GHopper!
Извините, но переключение окон происходит с помощью "ALT+TAB". Окно становится просто не активным - и все!

Ответ отправлен: 20.06.2003, 23:44
Отправитель: Pin


Отвечает masquer

Приветствую Вас, GHopper!
1. Можно WM_ACTIVATEAPP попробовать ловить. Но это так, теория, я не пробовал... Наверное ALT+TAB только.
2. LoadIcon из ресурсов.
3. Это лучше в MSDN подсмотреть - по памяти не помню (WM_POPUP, что ли).
Собсно, по всем этим вопросам лучше MSDN проштудировать - намного полезнее будет

Ответ отправлен: 20.06.2003, 15:26
Отправитель: masquer


 Вопрос № 3533

Добрый день Всем!!!Где можно взять архивные файлы рассылки.
Хотел взять c http://www.Kalashnikoff.ru/Assembler/Programs/Lessons/Virus13.rar не получилось, нет сайта, можетгде в друго месте лежат? Подскажите пожалуйста.
СПАСИБО!!!



Вопрос отправлен: 20.06.2003, 15:12
Отправитель: Vlad

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

Отвечает Дмитрий

Приветствую Вас, Vlad!
subscribe.ru!

Ответ отправлен: 21.06.2003, 05:31
Отправитель: Дмитрий


Отвечает Tigran K. Kalaidjian

Доброе время суток, Vlad!
Смотрите здесь:
http://rusfaq.ru/issues.exe

Ответ отправлен: 20.06.2003, 17:44
Отправитель: Tigran K. Kalaidjian


Отвечает baldr

Приветствую Вас, Vlad!
Ссылка на все уроки Олега Калашникова лежит на главной странице сайта http://www.rusfaq.ru в самом низу (exe-архив).

Ответ отправлен: 20.06.2003, 15:43
Отправитель: baldr


Отвечает _vt

Приветствую Вас, Vlad!
http://rusfaq.ru/issues.exe

---===*** E-Man 1.2 - Powerful toy***===---


Ответ отправлен: 21.06.2003, 15:00
Отправитель: _vt


 Вопрос № 3534

Привет
Комментарий к моим Вопросам № 3516 и 3509 и тд касавшимся созданию достаточно точного таймера. Похоже мне удалось решить проблему - функция timeSetEvent - устанавливает таймер, по которому вызывается callback процедура, к которую и помещен код вывода текста на экран. Точность, по-видимому, действительно заявленная - 1 мс (пока проверено только в Win2000) - тк тик таймера 10 мс приводит к 99 кадрам/с, c довольно частым 100, а 11 мс - жестко 90. Даже можно поставить таймер на 1 мс и в маленьком (очень не полноэкранном :) окне программы (пока проверено только Селерон 400!!!) получить значение счетчика 999-1000 кадров/с. При этом не нужен никакой другой поток и высокие приоритеты, как было сделано у меня раньше.
Так что спасибо всем экспертам, помогавшим мне своими советами, особенно Bob Johnson!
St



Вопрос отправлен: 20.06.2003, 15:52
Отправитель: St (st23@yandex.ru)

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

Отвечает Bob Johnson

Доброе время суток, St!
Пожалуйста :)

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


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


Отвечает baldr

Доброе время суток, St!
В винде 98 и 2000 максимальная частота вызова таймера различна. Это тоже надо учесть!

Ответ отправлен: 20.06.2003, 17:45
Отправитель: baldr


 Вопрос № 3536

Здравствуйте Эксперты!
У меня к вам два вопроса!
1. Как так что MS-DOS писал не Гейтс! В любой книжке говориться что дос (первые версии) писал Гейтс и Алан!
2. Что некоторые эксперты пишут жирным шрифтом!
Это как через теги ! Но если скрипт поддерживает показ тегов то он уязвим! (Надо же а я незнал!!!)
Извиняюсь на эта проба
А если не тегами то тогда как!



Вопрос отправлен: 21.06.2003, 04:14
Отправитель: Lando (Lando@list.ru)

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

Отвечает ASMодей

Добрый день, Lando!
Насколько я знаю (и помню), БГ не писал ДОС. Он купил
какую-то ОС (то ли PC-DOS, то ли DR-DOS), добавил туда
свой бейсик (вот его написал точно он) и переименовал
ее в MS-DOS.

Ответ отправлен: 23.06.2003, 07:33
Отправитель: ASMодей


Отвечает Bob Johnson

Доброе время суток, Lando!
> любой книжке говориться что дос (первые версии) писал Гейтс и Алан!
Говориться может что угодно. Я, конечно, не утверждаю, что Гейтс не писал ничего, но мне кажется он и не смог бы написать DOS.
> Это как через теги
Именно.
> Но если скрипт поддерживает показ тегов то он уязвим
Он поддерживает не все теги, а только безопасные.

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 22.06.2003, 15:58
Отправитель: Bob Johnson


Отвечает baldr

Приветствую Вас, Lando!
1. Ну, предположим, что в этом есть несколько заблуждений...
Даже я ;) затрудняюсь сейчас сказать, кто первым написал DOS. DOS можно назвать бОльшую часть существующих на данный момент операционок, ибо их количество, не побоюсь этой цифры, достигает и 1000! Ибо основная часть их - либо самописные однозадачные экземпляры, предоставляющие самый минимум функций пользователю через ядро. А первая появилась... У-у... :))
Ну, а что касается той, что мы знаем как MS-DOS, то AFAIK ее первой начала разрабатывать IBM, впрочем, Гейтс и Аллен там в то время уже работали. MS-DOS, конечно, писали они, но опирались они на IBM-овские наработки, иначе фиг бы они сделали IMHO...
Сорри, если путаю мелкие детали..
2. Это, действительно, теги, но не так уж скрипт уязвим. Не все теги можно писать.
Но, плз, не пробуй его заваливать, а?

Ответ отправлен: 21.06.2003, 12:35
Отправитель: baldr


Отвечает _vt

Приветствую Вас, Lando!
1. Я знаю точно, что FAT разработал Гейтс лично...
2. Поддерживаются только необходимые теги

---===*** E-Man 1.2 - Powerful toy***===---


Ответ отправлен: 21.06.2003, 15:00
Отправитель: _vt



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (38)
C / C++ (26)
Perl (5)
Builder / Delphi (18)
Pascal (28)
Basic / VBA (9)
Java / JavaScript (13)
PHP (5)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (30)
Windows NT/2000/XP (26)
"Железо" (20)
Поиск информации (15)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (6)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (4)
КоАП (3)

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




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


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


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

В избранное