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

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


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

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

Выпуск № 652
от 19.10.2003, 20:00

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


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

Gibbel
Статус: Профессиональный
Общий рейтинг: 106.69
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 150.7
URL: Программирование
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 121.76
[Подробней >>]
 
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 141.09
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.04
[Подробней >>]
Hangatyr
Статус: Профессиональный
Общий рейтинг: 111.42
[Подробней >>]
 
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 110.92
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 123.52
URL: Эхоконференция по вирмейкингу
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
dr_dolphin
Статус: Доверительный
Общий рейтинг: 120.61
[Подробней >>]


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

Вопрос № 4309. Уважаемые эксперты, помогите девушке разобраться с такой вот проблемой: Есть диалоговое окно, которо... (ответов: 4)
Вопрос № 4310. Уважаемые эксперты , поясните пж-ста следующее определение функции на ассемблере wsprintfA PROTO ... (ответов: 5)
Вопрос № 4311. Уважаемые эксперты! Кто получал книги от Intel! Через какое примерно время приходят книги? Что можно... (ответов: 2)
Вопрос № 4312. Добрый день! Можно ли скопировать поврежденный файл с CD диска?... (ответов: 2)
Вопрос № 4313. Здравствуйте Эксперты! Приятно, когда программа закончена и наступает более приятная стадия в плане ... (ответов: 1)
Вопрос № 4314. Приветик народ!! Помогите мне плз в моем вопросе, очень сильно надо) В общем нужна информация о печа... (ответов: 1)
Вопрос № 4315. Ну и что? Ну получилась у меня эта прыгающая от курсора мыши кнопка. А когда принес на другой комп, ... (ответов: 2)
Вопрос № 4316. Здравствуйте, эксперты. Помогите пожалуйста разобраться: когда я заменил invoke SetWindowsHookEx,WH_... (ответов: 2)
Вопрос № 4317. Здравствуйте, Bob Johnson!! Что-то опять не получается. -+-+-+-+-+-+-+-+- invoke FindResource,hIns... (ответов: 1)
Вопрос № 4318. Здравствуйте, уважаемые эксперты. У меня такой вопрос, точнее даже два: сбрасывает ли Винда страницы... (ответов: 1)
Вопрос № 4319. Уважаемые эксперты, подскажите, пожалуйста, как оптимальней преобразовать битовый массив в массив ба... (ответов: 1)
Вопрос № 4321. Уважаемые эксперты , поясните как работать с *.rc файлами в MASM , а то я ничего толкового не наш... (ответов: 4)

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


 Вопрос № 4309

Уважаемые эксперты, помогите девушке разобраться с такой вот проблемой:
Есть диалоговое окно, которое нельзя искать по заголовку и имени класса !!!(так нужно). Но нужно точно опознать его и получить Hwnd. Подскажите какие есть параметры у любого окна, кроме заголовка по которым можно отличить его от других окон. (Например смещение WndProc или UserData хоть что нибудь...) Желательно 1 Api-функцией.
Какие есть способы получения Hwnd окна кроме:
1) FindWindow не подходит - (заголовок изменяется)
2) EnumWindows не подходит - (слишком медленно)
3) GetActiveWindow не подходит - (у диалогового всегда
возвращает 0)

И если не затруднит - помогите с иконкой в трее.
Нет, не подумайте ничего плохого, как создать свою я знаю.
А вот как получить Hwnd любой другой иконки, которая сидит в трее или получить по ней Hwnd главного окна программы, которая туда посадила эту иконку ?
И самое интересное - как получить всплывающую подсказку любой иконки в трее программно !!!???
И если кто-нибудь подскажет как используя RunDll32 вызывать
Api-функции, которые принимают больше 1 параметра и в которых есть LpSz (Строковая переменная) - я буду самой счастливой девушкой-программисткой на этом свете.
Целую !
Спасибо, что уделили мне внимание !!!
С уважением, Виктория.



Вопрос отправлен: 13.10.2003, 20:55
Отправитель: Виктория

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

Отвечает Gibbel

Доброе время суток, Виктория!
Ну, если нельзя использовать FindWindow(), то тогда остается только один вариант - перебирать все окна функцией EnumWindows() (хоть это, по вашим утверждениям, и слишком медленно). Определить, какое именно перед вами окно можно по нескольким признакам. Например, функцией GetWindowLong() считать все неизменяющиеся параметры окна (если заранее известно, какие параметры не будут меняться в ходе работы). И/или определить приложение, создавшее это окно, функцией GetWindowModuleFileName(). Ну и т.д...
Насчет иконки в трее ничем не помогу (об этом писалось много раз, стоит только хорошенько полазить по поисковикам), а вот насчет RunDLL32 - она вызывает API специфическим образом. Вызываемая функция должна иметь следующий вид:
int __stdcall __declspec(dllexport) Function_Name
(
HWND hWnd,
HINSTANCE hInstance,
LPCSTR lpCmdLine,
INT nCmdShow
);

где hWnd - хэндл окна, порождаемого rundll32 (можно использовать в качестве owner'а своих dialog box'ов), hInstance - HINSTANCE задачи, lpCmdLine - остаток командной строки (т.е. все, что идет после rundll32 <dll_name>,<function>), этот параметр будет всегда LPCTSTR, ну и четвертый параметр аналогичен параметру nCmdShow функции WinMain. Надеюсь, теперь вам понятно, что форма передачи параметров зависит исключительно от того, как она реализована в конкретной dll.
P.S.: Для вопросов, касающихся WinAPI была создана специальная рассылка. Просьба писать туда.

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


Отвечает Bob Johnson

Здравствуйте, Виктория!
> помогите девушке разобраться с такой вот проблемой
Разреши узнать, зачем :)
> какие есть параметры у любого окна, кроме заголовка по которым можно отличить его от других окон
Размер и наличие/отсутствие детей (а также их размер, их дети, размер детей детей и т.д.). Ничего более интересного, кроме enumwindow в этой ситуации не представляется (только если известно примерное положение окна на экране). Да и не так уж это и медленно - ну переберешь ты 30 - 50 окон за раз. Но тебе разве это часто надо?

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


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


Отвечает _vt

Здравствуйте, Виктория!
Ну и вопросы у вас, девушка! :))
> помогите девушке разобраться с такой вот проблемой
Найдите себе подходящего парня, который разберется с подобными вопросами :(((
1) А вместо FindWindow используйте FindWindowEx - там можно указывать дочерние окна искомого окна...
2)
> Нет, не подумайте ничего плохого
... :)
3)
> как используя RunDll32
Никак. Такие функции вызывать таким способом вызывать нельзя, да и не нужно это...
> я буду самой счастливой девушкой-программисткой на этом свете
Девушек-программисток не бывает! :)))

*** E-Man - we are waiting for you ***


Ответ отправлен: 14.10.2003, 01:51
Отправитель: _vt


Отвечает Евгений Иванов

Приветствую Вас, Виктория!
Иконки в лотке создаёт отдельная библиотека, DLL.
Всю информацию можно получить только через эти подпрограммы в этой библиотеке.
Через запятую, а строки в "кавычках".

* EMan1.5: ---===*** Love is real! ***===---


Ответ отправлен: 15.10.2003, 00:37
Отправитель: Евгений Иванов


 Вопрос № 4310

Уважаемые эксперты , поясните пж-ста следующее определение функции на ассемблере
wsprintfA PROTO C :DWORD,:VARARG
данное вижу впервые , что значит PROTO C ,и сколько вообще параметров у этой функции , а то в примерах по её использованию я видел и 3 и 4 и 5 , если это так то как с ней правильно обращатся....



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

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

Отвечает vitya

Добрый день, greg!
обозначает, что конвенция вызова, как у функции C. Параметров может быть от 2 и больше. Первый параметр это буффер куда формируется строка, второй параметр это строка указывающая форматирующую строку, третий и далее параметры указывают параметры, которые должны будут быть записаны в выходной буффер. Да, функция расчитана только на юникод.
Для описания смотриs sprintf в любом хелпе по C/C++

Ответ отправлен: 14.10.2003, 09:24
Отправитель: vitya


Отвечает Hangatyr

Доброе время суток, greg!
"PROTO C" означает, что используется C calling convention - _cdecl (в большинстве других API - Pascal calling convention), т.е. после вызова необходимо будет самому очистить стек. А параметров может быть один, а может и несколько - это уж тебе решать.

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


Отвечает Bob Johnson

Добрый день, greg!
У этой функции неопределенное число параметров. Минимум - два, возможно сколько угодно. Количество параметров определяется тем, что ты посылаешь в строке "формат". Так же определяется и их тип. Из-за этого тип вызова функции - cdecl (т.е. тот, кто вызвал и очищает стек). Так сделано потому, что только в том месте, где вызвана эта функция точно известно, сколько аргументов ей было передано. Сама же функция может только предполагать о наличии стольки-то аргументов (по строке формата), и если она вызвана неверно (т.е. указано одно число параметров, на самом же деле - другое), то такой подход позволяет вернуть стек в правильное состояние все равно.

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


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


Отвечает Dark_Lord

Здравствуйте, greg!
c:dword это количество параметров, VARARG значит неограничено параметров, a PROTO это определение процедуры для использования её макросом invoke!

Ответ отправлен: 14.10.2003, 18:04
Отправитель: Dark_Lord


Отвечает Евгений Иванов

Приветствую Вас, greg!
PROTO - это значит - описывается прототип подпрограммы.
С - используется вызов и передача параметров с правилами языка C.
Дальше:
первый параметр - это 4 байта.
Второй параметр говорит, что дальше могут следовать много параметров.
По сути их число передаётся в первом параметре....

* EMan1.5: ---===*** Love is real! ***===---


Ответ отправлен: 15.10.2003, 00:37
Отправитель: Евгений Иванов


 Вопрос № 4311

Уважаемые эксперты!
Кто получал книги от Intel!
Через какое примерно время приходят книги?
Что можно указать в разделе company??
Зачем это нужно Intel??? Ведь, как я понял они достаются нахаляву!
Напишите, plz!
В рассылку отправлять необязательно...



Вопрос отправлен: 14.10.2003, 10:14
Отправитель: Aleksey (Aleksey@visits.ru)

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

Отвечает Maverick

Приветствую Вас, Aleksey!
1. Я.
2. В зависимости от наличия книг у них. Были случаи, что по году ждали. Мне через 2 недели пришли с извинениями за задержку.
3.Русский дом селенга. Я вообще МММ ИНвест написал.
4.Спроси у интел. Я там не работаю :)
5. Написал.
6. Отправлю, мож кому еще надо.
http://developer.intel.com/design/pentium4/manuals/245471.htm

Ответ отправлен: 16.10.2003, 05:15
Отправитель: Maverick


Отвечает Евгений Иванов

Доброе время суток, Aleksey!
Я получил!
Две недели!
Я вообще думаю, что они присланы не из Америки, а из их офиса в нашем городе Нижнем Новгороде...
Но не это важно, а главное, что книги у меня!
Да что хочешь! Pupkin ltd.
Мой друг говорит - реклама. И ещё ты становишься потенциальным покупателем их процессоров и т.п.
Я так не думаю, хотя это так (но это лишь часть истины). :-)
Ага, нахаляву! Хотя стоят около 500 руб.
Приезжает курьер и молча отдаёт тебе их - у него нет эмоций, это всего лишь его работа и ему она уже надоела... :)
Ему заплатили за эту работу - вот он и развозит всякую макулатуру разным...
Так что не стесняйся и заказывай!
Корпорация платит!


* EMan1.5: ---===*** Love is real! ***===---


Ответ отправлен: 15.10.2003, 00:37
Отправитель: Евгений Иванов


 Вопрос № 4312


Добрый день!
Можно ли скопировать поврежденный файл с CD диска?



Вопрос отправлен: 14.10.2003, 10:31
Отправитель: Alex

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

Отвечает dr_dolphin

Добрый день, Alex!
Воспользуйся программой CDCheck...
Она это позволяет делать...
Пока !


Ответ отправлен: 14.10.2003, 10:54
Отправитель: dr_dolphin


Отвечает Евгений Иванов

Добрый день, Alex!
ISOBuster поможет.

* EMan1.5: ---===*** Love is real! ***===---


Ответ отправлен: 15.10.2003, 00:37
Отправитель: Евгений Иванов


 Вопрос № 4313

Здравствуйте Эксперты!
Приятно, когда программа закончена и наступает более приятная стадия в плане фантазии - её защита.
В этом плане у меня к Вам пару вопросов, которые в принципе сводятся к одному - как затруднить исследование кода?
Писал на Delphi.
1. Какой принцип защиты выбрать?
Я пока остановился на привязке программы к: биосу (дате, версии), железу(номер винта, ...).
Из полученной строки генерирую номер, в ответ на который нужно ввести код регистрации, допустим какой-нибудь CRC номера.
2. Куда засунуть генерацию номера и проверку кода? Где тяжелей трассировать?
Можно поток создать, можно в какой нибудь VCL засунуть типа AnimatedImage из RX,
где код постоянно будет прыгать на перерисовку изображений (хотя тут я сомневаюсь. Вообще если
трассировать какой-нибудь Onclick и будет где-то таймер включен, то мы перелетим на таймера обработчик?).
3. Как запутать DeDe (классная программа!)?
Один хер он код покажет, есть ли вариант его ввести в заблуждение?
4. Есть ещё одна мысль у меня - допустим в ответном коде регистрации предусмотреть кроме CRC номера и адрес процедуры проверки.
и потом просто:
procedure StartVerify(kod: String);
var
offsetProc: Dword;
begin
offsetProc:=GetProcAddres(kod);
try
asm
mov esi, offsetProc
call esi
end; // Кстати, как будет выглядеть вызов процедуры на Delphi?
exception

end;
end;
Если что не то, то улетим хрен знает куда.
Но всё равно это что-то не то кажется.
Plees, посоветуйте как оригинальней сделать. Не слишком замудренное, но что бы более-менее соображающим
в асме пропало желание копаться в коде.
Спасибо за любой ответ.
С ув. Игорь
P.S. Извините за повтор кому пришёл, отправляю в два форума.



Вопрос отправлен: 14.10.2003, 15:17
Отправитель: Игорь (firemen01@ukr.net)

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

Отвечает Евгений Иванов

Здравствуйте, Игорь!
Надо использовать открытый ключ - надёжнее всего!

* EMan1.5: ---===*** Love is real! ***===---


Ответ отправлен: 15.10.2003, 00:37
Отправитель: Евгений Иванов


 Вопрос № 4314

Приветик народ!!
Помогите мне плз в моем вопросе, очень сильно надо)
В общем нужна информация о печати на принтере текста,графики и таблиц, под Win на ASM'e.
Кто чем сможет помогите.
Благодарю!
ЗЫ к MSDN'у не отсылать у меня его все равно нет и нет возможности его достать да и английским слабовато-(



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

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

Отвечает dr_dolphin

Приветствую Вас, Agny!
>Приветик народ!!
>Помогите мне плз в моем вопросе, очень сильно надо)
>В общем нужна информация о печати на принтере >текста,графики и таблиц, под Win на ASM'e.
>Кто чем сможет помогите.
>Благодарю!
Вам скорее всего нужно пользоваться возможностями OLE/COM, таких приложений как MS Word, MS Excel
Их интерфейс вроде документирован, да и установлены они везде. А ручками это все писать, да еще и на ассемблере...
Зачем велосипед изобретать. Это не продуктивно IMHO...
До встречи !
>ЗЫ к MSDN'у не отсылать у меня его все равно нет и нет >возможности его достать да и английским слабовато-(




Ответ отправлен: 15.10.2003, 07:40
Отправитель: dr_dolphin


 Вопрос № 4315

Ну и что? Ну получилась у меня эта прыгающая от курсора мыши кнопка. А когда принес на другой комп, то кнопка уже не прыгает (Хоть все и грузится) и кернел32.длл ошибка.. :((



Вопрос отправлен: 14.10.2003, 19:28
Отправитель: Ramala

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

Отвечает Bob Johnson

Здравствуйте, Ramala!
Ну и что? А ты бы код приложил...

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


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


Отвечает Евгений Иванов

Приветствую Вас, Ramala!
Другая система: 98 против NT или наоборот!

* EMan1.5: ---===*** Love is real! ***===---


Ответ отправлен: 15.10.2003, 00:38
Отправитель: Евгений Иванов


 Вопрос № 4316

Здравствуйте, эксперты.
Помогите пожалуйста разобраться:
когда я заменил invoke SetWindowsHookEx,WH_KEYBOARD,... на invoke SetWindowsHookEx,WH_JOURNALRECORD,..., то программа стала отрубаться при первом же вызове API (в смысле предлагает "послать отчет Microsoft"). В чем дело?
Спасибо.



Вопрос отправлен: 14.10.2003, 21:22
Отправитель: YuriS

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

Отвечает dr_dolphin

Добрый день, YuriS!
Скорее всего дело в том, что hook , который имеет параметр
WH_JOURNALRECORD, является глобальным и callback процедура обработки этого hook'а должна быть в библиотеке...
Вот что по этому поводу сказано в MSDN:
The global hooks are a shared resource, and installing one affects all applications in the same desktop as the calling thread. All global hook functions must be in libraries.
Надеюсь помог, пока !



Ответ отправлен: 15.10.2003, 07:40
Отправитель: dr_dolphin


Отвечает Bob Johnson

Приветствую Вас, YuriS!
У них разные процедуры обработки хуков - различий достаточно много, в частности WH_JR передается указатель на структуру, а WH_KB - нет. В остальном - не знаю, это очень зависит от кода твоей программы.

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


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


 Вопрос № 4317

Здравствуйте, Bob Johnson!!
Что-то опять не получается.
-+-+-+-+-+-+-+-+-
invoke FindResource,hInstance,6660,RT_RCDATA
invoke LoadResource,hInstance,eax
invoke GlobalLock,eax
mov TVar,eax
invoke CreateFile,offset MsgB,GENERIC_READ or GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,NULL
mov fHandle,eax
invoke WriteFile,fHandle,TVar,sizeof TVar,ADDR SizeReadWrite,NULL
invoke CloseHandle,fHandle
invoke GlobalUnlock,TVar
-+-+-+-+-+-+-+-+-
Выходящий файл получается размером в 4 байта, когда вместо sizeof TVar пишу 2560 (это размер программы находящейся в ресурсах) получается не работоспособный файл кторый в свойствах выглядит как DOS-программа. (закладки: экран, шрифт, память и т.п.) Не пойму в чём дело, может функцию какую не правильно использую?
С уважением,
Drahus.



Вопрос отправлен: 14.10.2003, 21:29
Отправитель: Drahus (drahus@yandex.ru)

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

Отвечает Bob Johnson

Приветствую Вас, Drahus!
Ну понятно - sizeof выдает тебе размер переменной TVar - 4 байта. Вообще же это несколько странно, каким это образом ты пытался определить размер ресурса...
Далее, видимо я тебе наврал на счет GlobalLock - предполагаю, что не стал читать msdn подробно, увидел название функций и сказал тебе. Точнее же там написано: не вызывайте функций GlobalLock или GlobalFree :(). Нужно же вызывать LockResource.
А чтобы узнать размер ресурса нужна функция SizeofResource.
В общем, скорее всего не работает программа потому, что вызываешь ты GlobalLock. Измени на LockResource (ну, добавь SizeofResource) и все должно пойти...

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


Ответ отправлен: 14.10.2003, 22:20
Отправитель: Bob Johnson


 Вопрос № 4318

Здравствуйте, уважаемые эксперты.
У меня такой вопрос, точнее даже два: сбрасывает ли Винда страницы стека, текущего процесса, в своп, если ей это необходимо? И второй вопрос, в каком кольце выполняется SEH текущего процесса (на NT платформе вроде в Ring3)?
Спасибо за ответы.



Вопрос отправлен: 14.10.2003, 22:21
Отправитель: Alex

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

Отвечает Bob Johnson

Приветствую Вас, Alex!
1. А почему нет? Стек - это обычная память. Предполагаю, что если поток где-то там заснет (т.е. не будет пользоваться стеком), то он будет выгружен в своп (если это необходимо).
2. В 3-м конечно, иначе это был бы самый простой способ попасть на ring0.

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


Ответ отправлен: 15.10.2003, 00:57
Отправитель: Bob Johnson


 Вопрос № 4319

Уважаемые эксперты,
подскажите, пожалуйста, как оптимальней преобразовать битовый массив в массив байт, чтобы каждым N-битам (где N=1,2,4) соответствовал 1 байт.
Заранее благодарен.
Ильдар.



Вопрос отправлен: 15.10.2003, 07:47
Отправитель: Ildar

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

Отвечает Евгений Иванов

Добрый день, Ildar!
Сдвигами, как же ещё!
mov esi,offset in
mov edi,offset out
mov ecx, len_in
m1:
mov al,[esi]
mov ah,al
and al,0Fh
stosb
shr eax, 8+4
and al,0Fh
inc esi
stosb
dec ecx
jnz m1
Счастливо! (Наталья, не вешай нос, всё будет в порядке!)


* EMan1.5: ---===*** Love is real! ***===---


Ответ отправлен: 15.10.2003, 16:37
Отправитель: Евгений Иванов


 Вопрос № 4321

Уважаемые эксперты , поясните как работать с *.rc файлами в MASM , а то я ничего толкового не нашел по синтаксису команд при формировании таких файлов, к примеру как описать в таком ресурсном файле иконку и с какими параметрами и главное чем его дальше обрабатывать, заранее благодарен......



Вопрос отправлен: 15.10.2003, 19:55
Отправитель: greg

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

Отвечает Hangatyr

Доброе время суток, greg!
Ну, иконку можно описать так:
2000 ICON DISCARDABLE someicon.ico
Но что-нибудь более значительное вручную создать довольно трудно - лучше воспользова%

Ответ отправлен: 15.10.2003, 21:35
Отправитель: Hangatyr


Отвечает Bob Johnson

Доброе время суток, greg!
Обрабатывать его надо компилятором ресурсов. Можно, например, brc.
Писать следует так:
идентификатор тип имя_файла.
Идентификатор - строка или число, которое идентифицирует ресурс.
Тип - тип ресурса (для иконки - ICON).
Пример:
1 ICON Icon1.ico
2 ICON Icon2.ico

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


Ответ отправлен: 17.10.2003, 21:54
Отправитель: Bob Johnson


Отвечает _vt

Добрый день, greg!
Работа с *.rc в MASM ничем не отличается от работы с ними в Visual C++... Создать *.res удобнее в VC...
Полное описание синтаксиса есть в Win32 SDK, который есть в Delphi/Builder'е... Пример с иконкой:
Создаешь resource.rc

#define IDI_MYICON 0x101
IDI_MYICON ICON "icon.ico"

Потом компилируешь

rc /r resource.rc

и получается resource.res...
В самой программе должно быть что-то типа

IDI_MYICON equ 101h

Тогда в ней можно обращаться к иконке по идентификатору...
Прилинковать к программе ресурс так:

link /subsystem:windows program.obj resource.res

*** E-Man - we are waiting for you ***


Ответ отправлен: 15.10.2003, 21:27
Отправитель: _vt


Отвечает Евгений Иванов

Здравствуйте, greg!
MyIcon1 ICON "c:winicon1.ico"
Описание есть в справке для редактора ресурсов (в Borland есть).

* EMan1.5: ---===*** Love is real! ***===---


Ответ отправлен: 16.10.2003, 04:14
Отправитель: Евгений Иванов



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

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

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




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


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


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

В избранное