Модераторы: PILOT

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужен С++ программист среднего уровня 
:(
    Опции темы
Sined
Дата 28.7.2004, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 19.5.2004

Репутация: -1
Всего: 0



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

PM MAIL   Вверх
DENNN
Дата 28.7.2004, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: нет
Всего: 43



В принципе Fantasist точно высказал все мысли, которые появляются при прочтении ответов Oleg1973.
Человек чуть ли не явно отрицает все достоинства системного подхода при написании проектов,
в сравнениях асма с другими языками (а начиналось по началу только с C++) готов привести любые умозрительные заключения и перевернуть все сног на голову, лишь бы доказать свою правоту. К примеру, начисто отрицается польза грамотного написания кода на C++, использование библиотек MFC,ATL, было названо неэффективным и ненужным, а сами библиотеки были названы просто врапперами и ничем иным.
Со стороны кажется что это маленький ребенок, который топает ножкой и кричит "хочу луну!". А на все доводы против его мнения просто предпочитает закрывать глаза.

Это сообщение отредактировал(а) DENNN - 28.7.2004, 09:32
PM ICQ   Вверх
oleg1973
Дата 28.7.2004, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: -2
Всего: 34



DENNN
ну а чем MFC не враппер?
я не пытаюсь никому ничего доказать,имхо бесполезно
каждый может и пишет как ему удобней
Цитата

названо неэффективным и ненужным

небыло такого,имелось ввиду что тоже самое можно сделать и без них либо с ними и на асме
Sined
Цитата
Если ты пишешь под винду в пользовательском режиме -- выигрышь от написания кода на асме будет скорее всего минимальный.

ты так думаеш?

з.ы.
да кстати напомню содержание первой серии для тех кто весь тред не читал

есть работодатель который ишет начинающего (запомните это слово)
сишника,есть тестовое задание,написать либу,я от скуки предложил написать на асме, и тут все и началось,обвинения во всех смертных грехах, антисоциальном поведении и так далее.
впечатление у меня складывается такое что кучка зазомбированых людей которые не признают ничего кроме с++ (недай боже визуального еще smile.gif ) брызгая слюной пытается убедить мир что асм ни есть язык програмирования,трудночитаем и вообще отладке не подлежит smile.gif, при том сами как я понимаю о данном языке имеют весьма смутное представление, которое осталесь еще со времен мсдос, что типа асм это нечто которое все время работает тока с прерываниями и портами, и чтоб вывести хело ворд на экран нада сначала шаманить и плясать с бубном.
А теперь разберемся углубленно, в данный момент как выглядит программа (к примеру OpenGL ) а асме:
Код

wmpaint:
invoke glClear,GL_COLOR_BUFFER_BIT
invoke glRotatef,[theta],0.0f,0.0f,1.0f
invoke glBegin,GL_QUADS
invoke glColor3f,1.0f,0.1f,0.1f
invoke glVertex3f,-0.6f,-0.6f,0.0f
invoke glColor3f,0.1f,0.1f,0.1f
invoke glVertex3f,0.6f,-0.6f,0.0f
invoke glColor3f,0.1f,0.1f,1.0f
invoke glVertex3f,0.6f,0.6f,0.0f
invoke glColor3f,1.0f,0.1f,1.0f
invoke glVertex3f,-0.6f,0.6f,0.0f
invoke glEnd
invoke SwapBuffers,[hdc]
xor eax,eax
jmp finish



по моему все достаточно читаемо и понятно и от С мало чем отличается,
ну если только этим
Код

xor eax,eax
jmp finish

тоесть как вы надеюсь поняли даже на асме структура программы таже что и на С, для самых ленивых есть макросы case, if, then и.т.п.
так же нет ну никакой проблемы для работы с разными там обьектами и тому подобной красотой smile.gif (DirectX к примеру)
Код
comacall CreateObject


для любителей процедурного програмирования,с созданием фрейма стека для передачи параметров (а-ля С) пример собственно процедуры
Код
proc Myproc,var1,var2,var3
enter

return
endp

вызвать ее можно к примеру так
Код
stdcall Myproc,var1,var2,var


зато при написании на асме можно с легкостью адаптировать свою либу/програму для линковки с модулями написаными на любом другом языке, так как передачу параметров через стек или регистры всегда можно "заточить" по нужный модуль.
про возможности оптимизации я даже говорить не буду, ни один компилер не сможет оптимизировать код так как можно это сделать ручками.

для отладки есть куча инструментария, начиная от отладчиков пользовательского уровня заканчивая ring0 отладчиками, либо если уж так хочется то можно и в Вижуал сишном дебугере отлаживать, достаточно там где нада бреак поинт int3 поставить.

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

з.ы.ы.
чтоб всех вас успокоить,
ХОТИТЕ НА С/С++ НАПИШУ?
и на нем умею smile.gif

Это сообщение отредактировал(а) oleg1973 - 28.7.2004, 11:08


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Orlan
Дата 28.7.2004, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 10.6.2004
Где: Киев

Репутация: 1
Всего: 1



Интерестно как на ассемблере будет выглядеть строка:
Код

#import "test.dll" no_namespace
ILogPtr(__uuidof(Log))->Log("Тест");

1. Создается объект типа Log
2. Получается интерфейс ILog
3. Текст "Тест" преобразовывается из анси в юникод (неявный выхов врапера _bstr_t)
4. Вызывается метод Log
Ничего более для программиста делать не надо.
Код понятен даже для студента, который знает только основы СОМ.
А какой код будет в этом случае на ассемблере? Страшно подумать
Нет враперов, только примитивные макросы, слегка упрщающие написание инструкций к процессору
Цитата
имелось ввиду что тоже самое можно сделать и без них либо с ними и на асме

Можна также было бы написать и в машинных кодах biggrin.gif biggrin.gif biggrin.gif. Разве нет?

--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
Sined
Дата 28.7.2004, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 19.5.2004

Репутация: -1
Всего: 0



Цитата
кучка зазомбированых людей которые не признают ничего кроме

2 кучки -- только одна кучка больше другой. Из ненаписанного в кратком содержании-- кое-кто (не будем показывать пальцами) предложил написать прогу на асме, после того как ему(не будем показывать пальцами, хотя хочется) мягко(!) объяснили, что прога на асме не очень то нужна, поскольку оцениваются знание и стиль написания в срр началось представление "Обидели юродивого--отняли коппеечку" и "Выходит, гении никому не нужны" с обвинением ни в чем ниповинного работодателя во всех смертных грехах и болезнях("подход у Вас, батенька, однобокий"). Это представление продолжается до сих пор.
PM MAIL   Вверх
Orlan
Дата 28.7.2004, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 10.6.2004
Где: Киев

Репутация: 1
Всего: 1



ИМХО, Ассемблер надо использовать только в узко специализированных задачах, работа с оборудованием например, оптимизация отдельных участков кода, которые выполняются милионы раз за секунду. А в остальных задачах это дополнительный напряг для проекта в целом.
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
DENNN
Дата 28.7.2004, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: нет
Всего: 43



Цитата
складывается впечатление что вы господа настроены именно против асма, еслиб я предложил написать либу на вижуал васике, флейма меньше бы было

Да будет Вам известно, милостивый государь, что сдесь обсуждалась не разовая работа (написал, взял деньги и пропал), а именно работа под коммерческий проект. И хоть вы в лепешку разбейтесь, но разработка на асме сложного комплекса несколькими програмистами на порядок сложнее, чем на общепринятых и отлаженных технологиях. И в таком ключе даже использование вижуал барсика выглядит предпочтительней (при всей моей нелюбви к нему), чем написание кода на асме только для того чтоб загнуть пальцы перед зеркалом.
Я много знаю больших коммерческих приложений, написанных на всех обсуждаемых языках, в тот только асм отстает sad.gif (и не надо сразу приводить в привер винду - там только критически важные для скорости участки написаны. Вообще неплохо вспомнить, что асм изначално все же низкоуровневый язык, читай "для выполнения низкоуровневых операций". Вот для этого его и надо использовать, а не разводить такой флейм.
PM ICQ   Вверх
oleg1973
Дата 28.7.2004, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: -2
Всего: 34



Orlan
Цитата

1. Создается объект типа Log
2. Получается интерфейс ILog
3. Текст "Тест" преобразовывается из анси в юникод (неявный выхов врапера _bstr_t)
4. Вызывается метод Log
А какой код будет в этом случае на ассемблере? Страшно подумать

наивный, ты обьекты в дебугере видел? smile.gif
обычный массив адресов функ-методов

Код

comcall ILog.Log,"test"
Invoke ExitProcess,0

proc LogFunc,var
enter
тут собственно вызывем из какойнить crtdll.dll функ _bstr_t
return
endp

struc ILog{ <------------ собственно страаашный обьект :))))
.Log dd LogFunc
}struct log



Цитата
Можна также было бы написать и в машинных кодах  . Разве нет?

не 1986 год
и не на Микроше програмируем
а на твой взгляд с твоей прогой на С компилятор что делает? smile.gif


Sined
Цитата
началось представление "Обидели юродивого--отняли коппеечку" и "Выходит, гении никому не нужны" с обвинением ни в чем ниповинного работодателя во всех смертных грехах и болезнях("подход у Вас, батенька, однобокий"). Это представление продолжается до сих пор.

а по теме нечего сказать?
так как вы человек для нас новый, о ваших програмерских способностях мы вообще ничего не знаем.

DENNN
Цитата
чем написание кода на асме только для того чтоб загнуть пальцы перед зеркалом.

Да будет Вам известно, милостивый государь, что пальцы никто не загинал
Цитата
но разработка на асме сложного комплекса несколькими програмистами на порядок сложнее, чем на общепринятых и отлаженных технологиях

ну да согласен, тут студент первокурсник ну ни как не разберется smile.gif
вот только вопрос возник
это какие такие в асме технологии не общепринятые используются? и не отлаженые?


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Sined
Дата 28.7.2004, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 19.5.2004

Репутация: -1
Всего: 0



Цитата
а по теме нечего сказать?


По теме я уже сказал -- не надо гадить в чужую тему.(Нонешний "гнилой базар" к ней отношения не имеет)


Цитата
так как вы человек для нас новый, о ваших програмерских способностях мы вообще ничего не знаем


Oleg1973, то чем вы сейчас занимаетесь более или менее лишено смысла -- более того, прямой переход на личности череват нарушением правил Форума.
Мне хватает моих способностей и для работы и для того, чтобы понимать, что языки это ИНСТРУМЕНТ и не более. Причем спорить о них достаточно глупо. Приведу простой пример: пассатижами удобно выдирать гвозди, откусывать провода и.т.д. При желании(если сильно напрячься можно забивать гвозди). Молотком можно без напряга эти гвозди забивать, но откусить провод уже не удастся--однако, если кто-нибудь скажет, что пассатижи лучше молотка, то я, как и 70% людей, сделаю не очень лестный вывод о его умсвенных способностях.

PM MAIL   Вверх
Orlan
Дата 28.7.2004, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 10.6.2004
Где: Киев

Репутация: 1
Всего: 1



Прочитал твой вариант кода на асьме
1. Объект ты не создавал
2. Соответственно не анализировал был ли он создан, если нет, то с какой ошибкой
3. Если он не создан был, ты не вызвал бы исключение
4.
Цитата
proc LogFunc,var
enter
тут собственно вызывем из какойнить crtdll.dll функ _bstr_t
return
endp

Программист ни одной строчки кода не написал что бы выполнить это - все происходит неявно. А ты даже упустил реализацию этого кода. И это потому что у тебя под руками нет подобной к ATL библиотеки
5.
Цитата
struc ILog{ <------------ собственно страаашный обьект smile.gif)))
.Log dd LogFunc
}struct log

Кто тебе сказал, что функция у этого одна и что она первая? Тебе надо было найти в реестре где находится СОМ длл-ка и прочитать из нее библиотеку типов и потом уже вызывать функцию, перед этим найдя ее адрес или dispid
6, 7, 8, ...... мне было просто лень их искать, они не такие очевидные. Да и ассемблер я знаю не так хорошо как ты, что бы идеально четко представлять как нужно писать на ассемблере СОМ+ приложения
В С++ есть еще шаблоны, их тоже нету не только в Асеммблере, но и в Паскале и покачто в Яве и Сшарпе.
Вот такие вот дела
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
oleg1973
Дата 28.7.2004, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: -2
Всего: 34



Sined
я на личности не переходил
просто чтобы дискутировать на данную тему (которую тупо свели к ASM VS C/C++)
надо иметь некую подготовку, printf("hello world") явно недостаточно будет
а mov ax,bx (это в наше то 32 разрядное время smile.gif ) тем более
пример с молотком вполне удачен
но разговор не о удобстве выполнения
а о совместимости в одном проекте кода на асме и С
естестно если в проекте все кодят только на формочках и кнопочках
про асм там и говорить нечего
но если есть ктото кто рубит в асме то почему бы и нет
и мысли о том что сопровождение такого проекта будет сложнее не совсем верны




--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
oleg1973
Дата 28.7.2004, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: -2
Всего: 34



Orlan
Цитата
1. Объект ты не создавал

это пример
обьект в нем мой собственный а не из какойто там dll
какие у него функ я знаю соответственно

Цитата
А ты даже упустил реализацию этого кода

что ты имел ввиду?
Цитата
Кто тебе сказал, что функция у этого одна и что она первая? Тебе надо было найти в реестре где находится СОМ длл-ка и прочитать из нее библиотеку типов и потом уже вызывать функцию, перед этим найдя ее адрес или dispid
6, 7, 8, ...... мне было просто лень их искать, они не такие очевидные. Да и ассемблер я знаю не так хорошо как ты, что бы идеально четко представлять как нужно писать на ассемблере СОМ+ приложения
В С++ есть еще шаблоны, их тоже нету не только в Асеммблере, но и в Паскале и покачто в Яве и Сшарпе.
Вот такие вот дела

ок
упростим пример
Код
invoke DirectDrawCreate,NULL,DDraw,NULL

в данном случае "создал" обьект, проще говоря получил адр структуры
как у всех нормальных людей имеется инклуд типа
Код
struc DirectDraw
{
   .handle       dd  ?
  virtual at 0
   .QueryInterface      dd  ?
   .AddRef       dd  ?
   .Release       dd  ?
   .Compact       dd  ?
   .CreateClipper      dd  ?
   .CreatePalette      dd  ?
   .CreateSurface      dd  ?
   .DuplicateSurface      dd  ?
   .EnumDisplayModes      dd  ?
   .EnumSurfaces      dd  ?
   .FlipToGDISurface      dd  ?
   .GetCaps       dd  ?
   .GetDisplayMode      dd  ?
   .GetFourCCCodes      dd  ?
   .GetGDISurface      dd  ?
   .GetMonitorFrequency     dd  ?
   .GetScanLine      dd  ?
   .GetVerticalBlankStatus  dd  ?
   .Initialize       dd  ?
   .RestoreDisplayMode      dd  ?
   .SetCooperativeLevel     dd  ?
   .SetDisplayMode      dd  ?
   .WaitForVerticalBlank    dd  ?
  ; added in v2 interface:
   .GetAvailableVidMem      dd  ?
  ; added in v4 interface:
   .GetSurfaceFromDC      dd  ?
   .RestoreAllSurfaces      dd  ?
   .TestCooperativeLevel    dd  ?
   .GetDeviceIdentifier     dd  ?
   .StartModeTest      dd  ?
   .EvaluateMode      dd  ?
  end virtual
}

который заполняется при вызове DirectDrawCreate
далее
Код
comcall DDraw,SetCooperativeLevel,\
 [hwnd],DDSCL_EXCLUSIVE+DDSCL_FULLSCREEN

вызываю SetCooperativeLevel - метод обьекта DDraw
так что номер функ мне пошарабану

надеюсь понятно?
ну а если обьект мой собстенный , мне его создавать совсем не нада
он у меня описан как структура в секции неинициализированных данных
и естестно если я его придумал то уж знаю какая функ по счету мне нужна smile.gif




--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
DENNN
Дата 28.7.2004, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: нет
Всего: 43



Я читаю и смеюсь smile.gif
Цитата
Да будет Вам известно, милостивый государь, что пальцы никто не загинал

Цитата
ну да согласен, тут студент первокурсник ну ни как не разберется

Цитата
надо иметь некую подготовку, printf("hello world") явно недостаточно буд


Вообще обидно: из-за высказываний одного человека весь топик свелся к какому-то бреду, а все спорящие уподобляются самому спорщику.

PM ICQ   Вверх
oleg1973
Дата 28.7.2004, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: -2
Всего: 34



DENNN
Цитата
из-за высказываний одного человека весь топик свелся к какому-то бреду,

ну так не высказывайся


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Orlan
Дата 28.7.2004, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 10.6.2004
Где: Киев

Репутация: 1
Всего: 1



Цитата
это пример
обьект в нем мой собственный а не из какойто там dll
какие у него функ я знаю соответственно

Программер на С++ тоже не знал. Толко он создал, а ты нет. Ему и не надо было знать этого. Вся ненужная для него (но не для ассемблеровского программера) зашита во враперах

Цитата
Цитата
А ты даже упустил реализацию этого кода

что ты имел ввиду?

Цитата
3. Текст "Тест" преобразовывается из анси в юникод (неявный выхов врапера _bstr_t)

Преобразование в Юникод. _bstr_t это С++ врапер и ты вызвать его не можеш.
Цитата
упростим пример

Код

#import "test.dll" no_namespace
ILogPtr(__uuidof(Log))->Log("Тест");

Ты еще хочеш упростить итак всего 2 строчки кода??? Пример и так для С++ крайне простой. Никаких сложных алгоритмов, циклов и даже операторов перехода нет!!!
Цитата
invoke DirectDrawCreate,NULL,DDraw,NULL

ОК. Осталось: по этой части:
Цитата
2. Соответственно не анализировал был ли он создан, если нет, то с какой ошибкой
3. Если он не создан был, ты не вызвал бы исключение

Цитата
как у всех нормальных людей имеется инклуд типа

Ниже этой цытаты ты привел структуру из DirectX. А ILog писал другой (пердположим) программист. И поэтому тебе самому прийдется писать ее вручну, за тебя этот С++ программер делать не будет. А в С++ за это отвечает только одна строчка кода и ты можеш юзать интерфейсы:
Код
#import "test.dll" no_namespace

Теперь я надеюсь ты заметил, что то что непрофессиональный С++ программер сделал даже не задумываясь, тебе пришлося разбиратся в основах технологии СОМ и ты вообще не реализовывал уведомление об ошибках, хотя в коде, что я привел она есть.
PS. Очень поражает настойчивость oleg1973. Вместо того, что бы сказать, что на Ассемблере этот текст лучше не делать - слишком затратно по времени, надо знать много, настаивает, что Ассемблер все таки здесь можно применять в реальных проектах с существенным использованием СОМ.

DENNN, просьба не начинать тут флейм. Для этого есть другие разделы. Берите туда oleg1973 и пишите, что хотите.
PSS. (Модератору) Тема раскололась реально на 2 части. Можно было б их разделить физически в разные темы, в 2 паралельных обсуждения? Такое в форумах часто встречается, особенно когда тема "горячая"

Это сообщение отредактировал(а) Orlan - 28.7.2004, 16:29
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Обсуждение работы | Следующая тема »


 




[ Время генерации скрипта: 0.0893 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.