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

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


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

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

Выпуск № 616
от 15.08.2003, 18:30

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


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

Евгений Иванов
Статус: Опытный
Общий рейтинг: 147.07
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 135.12
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 113.19
[Подробней >>]
 
dimka
Статус: Опытный
Общий рейтинг: 150.92
Телефон: (231)-4-43-85
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.15
URL: Программирование
[Подробней >>]
Алексей
Статус: Доверительный
Общий рейтинг: 104.87
[Подробней >>]
 
vitya
Статус: Профессиональный
Общий рейтинг: 108.08
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.23
[Подробней >>]
Andrew Vext
Статус: Профессиональный
Общий рейтинг: 105.22
[Подробней >>]
 
Hangatyr
Статус: Опытный
Общий рейтинг: 113.56
[Подробней >>]
Lynx
Статус: Опытный
Общий рейтинг: 117.76
Телефон: (8442) 750522
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 118.96
[Подробней >>]


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

Вопрос № 3887. Приветствую всех ! Помогите кто чем может... :-) Нужно переделать ДРОБНОЕ число написанное в текстов... (ответов: 3)
Вопрос № 3888. Здравствуйте. Задавал врос в прошлой рассылк: Решил написать, ибо проблема железная :) Установил у с... (ответов: 2)
Вопрос № 3889. Здравствуйте, эксперты! Задавал вопрос в рассылку по C++, но не получил ответа. "Приведите, пож... (ответов: 4)
Вопрос № 3890. Кто юзал IceExt? Сначала падал (SI грузил как Manual), потом 1 раз заработал, я добавил в настройке ... (ответов: 1)
Вопрос № 3891. Что такое рекурсия????... (ответов: 9)
Вопрос № 3892. Здравствуйте, уважаемые эксперты!!! Вопрос по сетевому программированию. Допустим, я написал програм... (ответов: 4)
Вопрос № 3893. Hi, я где-то торможу, но не пойму где. Надо обслужить ComboBox. Вот исходник. По идее, при нажатии к... (ответов: 4)

Вопросов: 7, ответов: 27


 Вопрос № 3887

Приветствую всех !
Помогите кто чем может... :-)
Нужно переделать ДРОБНОЕ число написанное в текстовом поле в значение регистра, добавить к нему, например 5.07 и вставить обратно в текстовое поле.
Если кто не понял вопрос - я расписал все очень подробно,
помогите пожалуйста, ведь с этим сталкивается каждый, кто пишет программы на ассемблере:
Вначале взгляните на приложение. Предположим, что после его выполнения по смещению Buffer лежит строка "12.3" или Hex(31 32 2E 33 00) Мне нужно преобразовать строку к числовому значению, произвести нужные действия и преобразовать обратно в строку !
Т.е. если бы по смещению Buffer находилась строка "12"
или Hex(31 32 00), то после преобразования в регистре eax,
должно быть 0000000C.
add eax,5
в eax будет 00000010
После обратного преобразование из eax в строке будет "17"
или Hex(31 37 00)
С целыми числами еще как-то можно разобраться, вычесть,
например, 30h а дальше через остаток, а вот дробные - как же с ними поступить ?
И вообще, неужели нет Api по работе с преобразованием строк ?
Если у кого-нибудь есть исходники на эту тему, вышлите пожалуйста, я в долгу не останусь !
Заранее огромное всем спасибо !!!


Приложение:


Вопрос отправлен: 10.08.2003, 23:06
Отправитель: Fantomas (f-a-n-t-o-m-a-s@ukr.net)

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

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

Приветствую Вас, Fantomas!
1. Запятую пока оставляешь в покое
2. Преобразуешь число в целое (можно пока запятую типа стереть)
3. Затем, братан, типа того, подсчитываешь порядок числа (типа на сколько
надо разделить число, чтобы было дробное).
4. Заносишь целое число в FPU
5. Делишь его с помощью FPU на вычисленный порядок.
6. УСЁ!!!
Я уже писал о том, что нет дробных чисел; если бы ты это понял, вопрос бы
этот не задал. А может, ты и не читал архива рассылки?


Ответ отправлен: 11.08.2003, 08:29
Отправитель: Евгений Иванов


Отвечает masquer

Приветствую Вас, Fantomas!
Такая последовательность:
команды FPU + wsprintf

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


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

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

Ответ отправлен: 11.08.2003, 09:03
Отправитель: ASMодей


 Вопрос № 3888

Здравствуйте.
Задавал врос в прошлой рассылк:
Решил написать, ибо проблема железная :)
Установил у себя Windows2000 (SP4), Win2003, WinXP..... и у меня возникла проблема с установкой драйверов к моему видеоадаптеру (GF4 MX440), драйвера устанавливаются, компьютер перезагружается, но всё равно я могу выбрать только 16 (256) цветов и в свойствах экрана пишется устройство VGA (причём в ресурсах диапазоны ввода вывода заняты -Диапазон ввода/вывода 03B0 - 03BB уже используется: VIA CPU to AGP Controller). В диспетчере устройств же пишется GF но с восклицательным знаком, в свойствах - PCI шина 1, устройство 0, функция 0 (хотя надо AGP?). Далее такая строка - Запуск этого устройства невозможен. (Код 10). В чем может быть дело? VIA SP последние, прошивки на мать тоже.

--------------------------------------------------------------------------------
Мать ECS L7VMM.
Via 4 in 1 последниии..AGP там же.
Дрова 40**
Кому интерестно http://forum.ru-board.com/topic.cgi?forum=27&topic=4938&start=0#2
Спасибо.



Вопрос отправлен: 11.08.2003, 05:10
Отправитель: Eugene (eugene@hbh.ru)

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

Отвечает dimka

Добрый день, Eugene!
Пробей другие драйвера!!!!!!!!!!!!У меня такое было.


Ответ отправлен: 13.08.2003, 11:31
Отправитель: dimka


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

Доброе время суток, Eugene!
1. Драйвера другие (установи);
2. + AGP драйвера установи (другие);
Рассылка по Ассемблеру!
Что это за издевательство?!
Где модератор?
Вот в plugring в этом случае запрещали посылать сообщения этому стручку
на неделю!



Ответ отправлен: 11.08.2003, 09:47
Отправитель: Евгений Иванов


 Вопрос № 3889

Здравствуйте, эксперты!
Задавал вопрос в рассылку по C++, но не получил ответа.
"Приведите, пожалуйста, пример, как с помощью сообщения WM_COPYDATA передать другому приложению картинку BMP (именно
картинку, а не путь к ней). Среда - VC++."
Так вот, если передавать указатель на картинку, то в0 втором приложении она не отображается.
Пробовал два варианта:
COPYDATASTRUCT cds;
1.
передача
hBitmap=(HBITMAP)::LoadImage(NULL,strName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
cds.lpData=hBitmap;
cds.dwData=5;
cds.cbData=sizeof(HBITMAP);
SendMessage(hWnd,WM_COPYDATA,(WPARAM)GetSafeHwnd(),(LPARAM)&cds);
прием
HBITMAP hBit=*(HBITMAP)pCopyDataStruct->lpData;
CDC* dc=GetDC();
CDC dcMem;
dcMem.CreateCompatibleDC(dc);
dcMem.SelectObject(hBit);
dc->StretchBlt(407,265,245,150,&dcMem,0,0,200,200,SRCCOPY);
2.
передача
BITMAP Bitmap;
hBitmap=(HBITMAP)::LoadImage(NULL,strName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
::GetObject(hBitmap,sizeof(BITMAP),&Bitmap);
cds.lpData=&Bitmap;
cds.dwData=5;
cds.cbData=sizeof(BITMAP);
SendMessage(hWnd,WM_COPYDATA,(WPARAM)GetSafeHwnd(),(LPARAM)&cds);
прием
BITMAP bm=*(BITMAP*)pCopyDataStruct->lpData;
long n=bm.bmWidth;
HBITMAP hBit=::CreateBitmapIndirect(&bm);
CDC* dc=GetDC();
CDC dcMem;
dcMem.CreateCompatibleDC(dc);
dcMem.SelectObject(hBit);
b=dc->StretchBlt(407,265,245,150,&dcMem,0,0,200,200,SRCCOPY);
В первом приложении картинка отображается нормально. Числовые данные передаются тоже правильно.
Надеюсь на Вашу помощь, Pasha
P.S. Может дело в том, что "данные, предназначенные для передачи, не должны содержать указателей или других ссылок на объекты, не доступные для программы, принимающей эти данные". Тогда как быть (нужно именно сообщение WM_COPYDATA).



Вопрос отправлен: 11.08.2003, 09:22
Отправитель: Pasha (note2pasha@tut.by)

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

Отвечает dimka

Здравствуйте, Pasha!
Используй OLE!!!


Ответ отправлен: 13.08.2003, 11:33
Отправитель: dimka


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

Приветствую Вас, Pasha!
В каждом приложении адреса свои и не видны другом.
Это есть защита!
Первый вариант работает - его и используй.
А если нужно передать чистые данные, то используй DDE, OLE.
Или FileMapping.


Ответ отправлен: 11.08.2003, 09:59
Отправитель: Евгений Иванов


Отвечает masquer

Приветствую Вас, Pasha!
Мне смутно кажется что hBitmap, полученный в одном процессе, не будет указывать на тот же объект в другом. Используй MMF.

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


Отвечает Bob Johnson

Доброе время суток, Pasha!
> данные, предназначенные для передачи, не должны содержать указателей или других ссылок на объекты, не доступные для программы, принимающей эти данные
Именно. Тебе нужно загрузить всю картинку, как она есть (т.е. как файл) в память, затем занести в поле lpData адрес этого участка памяти, в поле cbData - его размер и отослать copydata. На приемной же стороне ты при получении этого сообщения ты просто считываешь полученные данные из указанного тебе участка памяти.
В общем, используй функции - GlobalAlloc, ReadFile для отправки картинки и потом что-то вроде CreateDIBSection для создания ее в другом процессе.

* EMan1.5: ---===*** Die young - live free ***===---


Ответ отправлен: 11.08.2003, 17:13
Отправитель: Bob Johnson


 Вопрос № 3890

Кто юзал IceExt? Сначала падал (SI грузил как Manual), потом 1 раз заработал, я добавил в настройке SI загрузку модулей (DLL) для экспорта, потом после net start IceExt комп падать в синь начал (SI гружу Automatic).
Вынь2000РусSp4, DS 2.7, IceExt 0.4. В чем может быть дело?
Сайс работает нормально.



Вопрос отправлен: 11.08.2003, 09:35
Отправитель: IanPo

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

Отвечает dimka

Доброе время суток, IanPo!
непонятка!! Какой у тебя Win?


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


 Вопрос № 3891

Что такое рекурсия????



Вопрос отправлен: 11.08.2003, 11:38
Отправитель: crank

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

Отвечает Алексей

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

Приложение:

Ответ отправлен: 11.08.2003, 13:11
Отправитель: Алексей


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

Доброе время суток, crank!
Используется в ЯВУ.
На Ассемблере пишется по другому и по сути не является рекурсией, а просто
считается вызовом подпрограммы несколько раз.
На ЯВУ:
procedure MyProc(){
while (1) do{
if (!MyProc()) break;
}
.....working
if (..??..) return 0;
return 1;
}
То есть, в подпрограмме есть вызов самой себя.
Главное - условие выхода.
Очень сильно используется стек.
Надо очень много его; или пусть компиляторы поддерживают рекурсию и
соответствующим образом вызывают это дело...
На Ассемблере лучше делать так:
proc MyProc
...
endp MyProc
;-----
mov ecx, 45
m1:
call MyProc
..... working
dec ecx
jnz m1
Ты сам себе хозяин и улучшай скорость программы, как хочешь...
Удачи!


Ответ отправлен: 12.08.2003, 23:56
Отправитель: Евгений Иванов


Отвечает dimka

Здравствуйте, crank!
Подпрограмма вызывает сама себя
procedure rec(i:integer);
var
x:byte;
begin
if (i=0)or(i=1) then inc(x)
else rec(i-1);
end;


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


Отвечает vitya

Добрый день, crank!
это когда функция сама себя вызывает.

Ответ отправлен: 11.08.2003, 12:04
Отправитель: vitya


Отвечает Ayl

Приветствую Вас, crank!
Рекурсия - вызов функции повторно либо из самой себя (прямая рекурсия), либо из другой функции, вызванной из первой (косвенная рекурсия).
Средство очень мощное, но таящее в себе потенциальные ошибки. Самое простейшее - зацикливание, когда в рекурсивной функции не предусмотрен выход. Второе - глубина рекурсии. Так как обычно рекурсивная процедура ничем не отличается от обычной, то и функционирует она точно так же. То есть, при каждом входе в процедуру резервируется место для локальных переменных и параметры для нее передаются через стек. Так как объем стека является ограниченным, то при большой глубине рекурсии стек переполняется, что вызывает ошибку программы.
В приложении - 2 примера. Один - функция получения n-го члена ряда Фиббоначи (Fibb (n) = Fibb (n-1) + Fibb (n-2); Fibb (1) = Fibb (2) = 1), второй - печать четных и нечетных чисел (пример просто для демонстрации косвенной рекурсии).
Примеры на Паскале.

Приложение:

Ответ отправлен: 11.08.2003, 13:02
Отправитель: Ayl


Отвечает Andrew Vext

Приветствую Вас, crank!
Этокогда функция вызывает сама себя.

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


Отвечает Hangatyr

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

Ответ отправлен: 11.08.2003, 12:12
Отправитель: Hangatyr


Отвечает Bob Johnson

Добрый день, crank!
Последовательный вызов процедурой самой себя для достижения целей, поставленных в задачи.

* EMan1.5: ---===*** Die young - live free ***===---


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


Отвечает Lynx

Здравствуйте, crank!
Рекурсия = самовызов!!! :))) (Легче не стало, да???)
Расказываю на пальцах:
Рекурсия бывает двух видов: прямая и косвенная.
Прямая рекурсия подразумевает под собой, что какая то процедура вызывает сама себя.
* KakayaNit proc
* call KakayaNit
* ret
* Endp KakayaNit
- Ну это простейший примерчик (и совершено бесполезный). :)))
Косвеная рекурсия - это когда процедура №1 вызывает процедуру №2, а та, в свою очередь вызывает процедуру №1. (Ну эта цепочка может быть и длиннее).
* Pr1 proc
* call pr2
* ret
* endp Pr1
*-----------------------------------------
* Pr2 proc
* call pr1
* ret
* endp Pr2
Вот так-то :))) А вобще ты найдёшь кучу примеров использования рекурсии в любом учебнике по любому языку программирования!

Ответ отправлен: 12.08.2003, 12:24
Отправитель: Lynx


 Вопрос № 3892

Здравствуйте, уважаемые эксперты!!!
Вопрос по сетевому программированию. Допустим, я написал программу, которая слушает
определенный порт (сокет - TCP/IP). Запускаю ее, пробую подключиться telnetом. Все в
полном порядке. Теперь пробую принять данные (recv) - В том же telnetе пишу что-нибудь,
но функция recv возвращает в буфер 1 байт (первый символ введенной строки). Как быть, если
мне нужно получить всю строку целиком? Думаю, как-то это можно сделать, ведь c web-серверами
можно работать и через telnet.
Спасибо.



Вопрос отправлен: 11.08.2003, 12:55
Отправитель: Dr.00py (stepipatov@mail.ru)

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

Отвечает dimka

Здравствуйте, Dr.00py!
Не люблю сеть!!!


Ответ отправлен: 13.08.2003, 11:24
Отправитель: dimka


Отвечает Bob Johnson

Доброе время суток, Dr.00py!
Тут причина в том, что ты руками слишком медленно нажимаешь на кнопки :) Когда ты нажимаешь первую клавишу, windows уже отправляет пакет твоей программе только с одной клавишей, затем, когда ты нажимаешь другую - windows отправляет следующий пакет и т.д.
В общем, тебе нужно в твоей программе вызывать recv до тех пор, пока ты не получишь целиком то, что тебе надо. Например, http сервер вначале получает целиком заголовок запроса (он заканчивается байтами 13, 10, 13, 10, т.е. двумя переводами строки), а потом данные запроса, если они в нем есть (их размер указывает поле Content-length). Если хочешь, посмотри исходники моего http сервера (это есть на моей странице - http://bobjohnson.nm.ru).

* EMan1.5: ---===*** Die young - live free ***===---


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


Отвечает vitya

Здравствуйте, Dr.00py!
Телнет посылает запрос посимвольно. Всю строчку одновременно получить не удастся, так как заранее не известен ни ее размер ни время за которое она дойдет до сервера.
Если ты работаешь с клиентом типа телнета, то приходящие данные читаются или посимвольно или сколько накопится в буфере, a конец строчки описывается, как .

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


Отвечает Hangatyr

Доброе время суток, Dr.00py!
Должен тебя огорчить, но все придется делать самому. Телнет не сделан для какой-то одной цели, а строка - понятие растяжимое - ее конец, в принципе, может обозначаться любым символом. Для начала определи его (символ) - это может быть и перевод строки и еще что-нибудь - а пототом вызывай recv до тех пор, пока не получишь этот символ, это и будет ее конец.

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


 Вопрос № 3893

Hi, я где-то торможу, но не пойму где. Надо обслужить ComboBox. Вот исходник. По идее, при нажатии кнопки Add должен текст попадать в list ComboBox'а. Но не попадает :(


Приложение:


Вопрос отправлен: 11.08.2003, 15:16
Отправитель: Beeblebrox (beeblbrx@mail.ru)

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

Отвечает dimka

Доброе время суток, Beeblebrox!
Компилируй Masm'ом!!!!


Ответ отправлен: 13.08.2003, 11:28
Отправитель: dimka


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

Доброе время суток, Beeblebrox!
// windlg.rc
#define DS_CENTER 0x0800L
#define DS_MODALFRAME 0x80L
#define DS_3DLOOK 0x0004L
#define WS_MINIMIZEBOX 0x00020000L
#define WS_SYSMENU 0x00080000L
#define WS_VISIBLE 0x10000000L
#define WS_OVERLAPPED 0x00000000L
#define WS_CAPTION 0xC00000L
#define CBS_HASSTRINGS 0x200L
#define ID_DIALOG 8
#define IDC_EDIT 0
#define IDC_ADD 2

ID_DIALOG DIALOG 10, 10, 208, 65
STYLE DS_CENTER | DS_MODALFRAME | DS_3DLOOK | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED
CAPTION "ComboBox example"
{
COMBOBOX IDC_EDIT, 10, 12, 102, 79, CBS_DROPDOWN | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Add", IDC_ADD, 139, 11, 52, 13
}
Вопрос отправлен: 11.08.2003, 15:16
Действителен до: 15.08.2003, 15:16
Отправитель: Beeblebrox (beeblbrx@mail.ru)
;-------------------------------------------------
1.Здесь надо возвращать нуль!
call SetFocus
;!! jmp return1
jmp return0
2.wID = LOWORD(wParam); // item, control, or accelerator identifier
младшее слово! AX!
;!! cmp eax,IDC_ADD
cmp ax,IDC_ADD
je _add
Удачи!


Ответ отправлен: 12.08.2003, 23:56
Отправитель: Евгений Иванов


Отвечает masquer

Доброе время суток, Beeblebrox!
Хм, скомпилировал масмом - никаких проблем, все нормально, добавляет :) Может, ну его, этот борланд? :))))

Ответ отправлен: 11.08.2003, 17:36
Отправитель: masquer


Отвечает _vt

Приветствую Вас, Beeblebrox!
Ооочень долго возился и нашел!!! Теперь работает везде!! Посмотри, чему у тебя равно CB_ADDSTRING ??? У Борланда в windows.inc стоит
CB_ADDSTRING = (WM_USER+3)
причем
WM_USER = 0400H
вот отсюда ты это и взял !!!
В winuser.h как у M$, так и Borland стоит правильное значение
#define CB_ADDSTRING 0x143
В windows.inc из пакета MASM32 тоже правильно!!
Поменял я на правильное значение и теперь компилируется и тасмом и масмом!!
Так что выкинь windows.inc производства Борланда!! А также свой def32.inc!!!
P.S. Самое смешное, что я в свой def32.inc сначала тоже вставил эти определения из борландовского windows.inc, и несколько часов искал ошибку в коде, пока не прочитал ответ Masquer'а и не попробовал MASM32!!!
P.P.S.
2Masquer: Borland - forever!

---===*** E-Man - forever! Win2k - forever! WinXP - must die!***===---


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



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (37)
C / C++ (28)
Perl (3)
Builder / Delphi (22)
Pascal (28)
Basic / VBA (12)
Java / JavaScript (8)
PHP (7)
Криптография (10)
WinAPI (19)
Пользователю
Windows 95/98/Me (47)
Windows NT/2000/XP (57)
"Железо" (42)
Поиск информации (27)
Администратору
Windows NT/2000/XP (27)
Linux / Unix (12)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (7)
КоАП (5)

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




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


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


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

В избранное