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

Поиск:

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


Новичок



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

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



День добрый, уважаемые коллегиsmile.gif

Развивающейся IT компании требуется начинающий специалист на полный рабочий день, со знанием ANSI С++ . Кроме собственно сей, неплохо бы представлять что такое многопоточность и STL - этого хватит.

Оплата труда по результатам собеседования )))

Для начала работа будет заключаться в сопровождении имеющегося проекта, его докрутки и создании для него дополнительных модулей. Дальше будет возможность (а может и необходимость) познакомиться поближе с Oracle, клиет серверными приложениями, Java и т.д....

Коли кого заинтересовало - вот небольшое ТЗ. Вопросы, выполненный код и резюме кидать сюда ([email protected])

ТЗ:
------------------------

Входные данные:
---------------

Создать два различных файла с данными (*.txt), формата:
1 - каждый файл состоит из от 2-х до 5-ти строк записей - разделитель строк ";";
2 - каждая строка состоит из 5-ти полей - разделитель поля ",";
3 - в каждом пол хранится любое целочисленное значение, 0 или пусто.

Задача:
-------

Создать:
1 - запускаемый модуль, в который в качестве параметров будут передаваться пути к этим файлам,
2 - создать динамическую библиотеку, содержащую одну экспортируемую функцию,
принимающую целочисленный аргумент и возвращающую свой аргумент умноженный на два.

В модуле должны стартовать два потока, каждый из которых будет обрабатывать свой файл.
Обработка файла заключается в следующем:
1 - считывание поля
2 - модификация его с помощью метода из .dll
3 - запись его в некий выходной файл.
В результате работы программы должно получиться два выходных файла.

Это сообщение отредактировал(а) v_ez - 16.7.2004, 16:33
PM MAIL   Вверх
oleg1973
Дата 16.7.2004, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



хотите на ассемблере напишу?smile.gif



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


Новичок



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

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



Да можно было бы и на нём, да проект на который человек нужен на С++ написан smile.gif
PM MAIL   Вверх
oleg1973
Дата 19.7.2004, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



а что в с/с++ инлайн асм отменили? smile.gif
да и вообше можно обьектник скомпилить и прилинковать к проекту написаному на с/с++
или dll написать которую проект будет использовать
однобокий у вас подход однако господа smile.gif
а создание тредов в модуле зачем? или просто показать что типа человек умеет?


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


Шустрый
*


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

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



А кто потом такой язык как ассемблер захочет поддерживать из комманды разработчиков?
Еще бы предложил написать в машынных кодах! biggrin.gif
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
oleg1973
Дата 21.7.2004, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Orlan
дилетанские рассуждения тут не уместны
какая нафиг разница начем dll написана?
она функ ехпортирует и выполняет с возвратом неких значений



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


asm fanat
****


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

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



а если не секрет что за проект?


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


Новичок



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

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



Нет, господа - это у вас однобокий подход ))
на кой болт интересно писать прогу на ассемблере - если проект уже написан и его доводить надо? заново переписывать чтоли? ;))

Конвертор для биллинговой системы...
PM MAIL   Вверх
oleg1973
Дата 22.7.2004, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



что есть доводить?
и никто и не предлогал ПЕРЕПИСЫВАТЬ ВЕСТЬ проект на асме
если нехватает неких функ то делаем

void somefunc()
{
_asm
{
some code
}
}
после компиляции ну ничем отличатся не будет
а вот оптимизация и скорость увеличится

либо пишется кусок кода просто на асме , сомпилим в obj COFF или другой поддерживаемый вашим компилятором формат
и спокойно линкуем
либо делаем полноценную dll с набором экспортируемых функ
и используем в проекте

если не умеете могу научить smile.gif

з.ы.


господин Orlan на вас работает?
если да то можно сразу оценить уровень подготовки ваших специалистов



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


Шустрый
*


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

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



Цитата
дилетанские рассуждения тут не уместны
какая нафиг разница начем dll написана?
она функ ехпортирует и выполняет с возвратом неких значений

Если ты уйдеш на другую работу или просто в отпускт, то твои исхощирения прийдется поддерживать. А сейчас на асемблере хорошо программировать может много людей. И эти люди буду допускать ошибки, будут глюки и т.д.
Писать на ассемблере из за того что один разработчик говорит асемблер - рулез форева! - это слишком большой риск для проекта. А риск значит, что он будет более затратным
Цитата

господин Orlan на вас работает?
если да то можно сразу оценить уровень подготовки ваших специалистов

Я работаю в достаточно известной на постсовецкой територии корпорации. Прикладным программистом.
С драйверами и низкоуровневыми операциями не имел дела и поэтому скептически отношусь к использованию ассемблера в реальной жизни. У виды 2000, 2003 и ХРю есть Уровень Абстракции от Аппаратуры. Так что там твой ассемблер не очень нужен. Разве что синтаксис будет немного проще (если люди вообще знают ассемблер).
Ассемблерные вставки - да они могут пригодится. А вот целые модули на ассемблере - я сочуствую людям, которые должны такой код перенимать и поддерживать.
У нас группа программистов использует вместо MFC, WTL или .НЕТа библиотеку, что написана одним программером. Если он уйдет - проекту полный звиздец. Так что я знаю что без поддержки кода не обойтись. Разве что студенчиские лабы можно не поддерживать.
Надеюсь я ответил на это:
Цитата
Orlan
дилетанские рассуждения тут не уместны


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


asm fanat
****


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

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



Цитата
Если ты уйдеш на другую работу или просто в отпускт, то твои исхощирения прийдется поддерживать

прикол smile.gif
ну вот сам подумай
есть либа + дока по ней , что так трудно разобратся?
есть инклуды, влючай в свой С++/С и работай спокойно
куча контор продает свои либы и не кто еще не жаловался и не спрашивал
" а на чем ето ваша либа написана? уж не на амсе ли? или упаси госпоть в машинных кодах? а вдруг она будет не совсестима с нашим С/С++ проектом?"
Цитата
У виды 2000, 2003 и ХРю есть Уровень Абстракции от Аппаратуры.

нюню значит в 98 HAL еще не был придуман? biggrin.gif biggrin.gif biggrin.gif

Цитата
Я работаю в достаточно известной на постсовецкой територии корпорации

вы меня умиляете своим оптимизмом biggrin.gif biggrin.gif biggrin.gif


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


Шустрый
*


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

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



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

Разработка библиотеки более трудоемкая работа чем разработка прикладного кода. Разработчик должен давать чутли не руку на отчеченее, если он допустит ошибки.
Не жаловался? Да эти конторы продают сборища глюков, а не библиотеки!!! Видно тебе не довелося пользоватся ни одной такой библиотекой. Например мы закупили библиотеке CodeJoke - боже мой. Хоть бери правь ее в исходниках!!! Тупые ламеры писали ее. А ты тут заявляеш что будеш вылизывать код под единоразовую задачу до качества библиотеки да еще на ассемблере. И говориш, что глюков не будет. Пожалей себя! Твой труд останентся неоплаченым. Подключат ее без проблем. Для этого и доки особо и не нужны, разве что краткое описание. А потом пойдут глюки или просто изменение в постановке через 4 года sad.gif . А ты может уже на Канарах за вырученые бабки и ни о какой работе и слышать не хочеш rolleyes.gif
Никто не жалуется на эти либы потому что их никто не юзает. Есть в инете пару нормальных либ. Находиш ту, которую потом можеш править. Закачиваешь. Если она более-менее, то вставляеш и правиш код в случее ошибок. Если у автора либы серъезные проблемы с логикой, то используеш только идеи из нее - она просто пример работы.
Цитата

нюню значит в 98 HAL еще не был придуман?   

тут не буду спорить. Реального низкоуровневого программирования не было. Просто немного баловался. hmmm.gif
Цитата
вы меня умиляете своим оптимизмом

notify.gif Не понял смысла этой фразы, но это и не важно. Переход на личности никогда не приводит к истине.

Это сообщение отредактировал(а) Orlan - 23.7.2004, 18:33
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
oleg1973
Дата 24.7.2004, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Цитата
А ты тут заявляеш что будеш вылизывать код под единоразовую задачу до качества библиотеки да еще на ассемблере

а что в этом странного?
для меня это не сложно
Цитата
Находиш ту, которую потом можеш править. Закачиваешь. Если она более-менее, то вставляеш и правиш код в случее ошибок.

ну это ты загнул
или ты под линюх пишеш? biggrin.gif biggrin.gif biggrin.gif
Цитата
Никто не жалуется на эти либы потому что их никто не юзает

а вот не нада
SDL юзают
openNURBS юзают
продолжить список? (есть куча мат. либ)


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


Лентяй
***


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

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



oleg1973

Знаешь, складывается впечатление, что ты либо непрофессиональный программист, либо программист одиночка. Все, кто работал над нормальными проектами с несколькими участниками понимают, что очень большое значение играет именно КАК написан код (вплоть до стиля оформления), а не только функциональная правильность кода.

Так что вот это:
Цитата
какая нафиг разница начем dll написана?


справедливо только для dll, которую написали лично вы и сами продаете, без исходных кодов. Там действительно без разницы, как она написанна.

А в купе с вот этим:
Цитата
дилетанские рассуждения тут не уместны


Ты просто нарываешься на звание ламера. Нельзя с такой воинственностью отстивать убеждения, которые далеко не являются правильными.

Ассемблер действительно плохо расширяем и тяжело поддерживаем.

Добавлено @ 20:10
Цитата
а что в этом странного? для меня это не сложно


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



--------------------
Волны гасят ветер...
PM MAIL   Вверх
oleg1973
Дата 25.7.2004, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Цитата
Ты просто нарываешься на звание ламера

Fantasist
базар фильтруй


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


Шустрый
*


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

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



Цитата

а что в этом странного?
для меня это не сложно

Весьма наивное высказывание. Имея минимальные ресурсы сделать профессиональную библиотеку, которую без правки могли юзать программеры во всем мире? Майкрософт этого не может. Сан этого не может. АйБиЭм не может. А он может!!! Майкрософт уже сделала одну такую либу - WTL - глюки до сих пор исправляют.
Цитата
ну это ты загнул
или ты под линюх пишеш?

Нет. Под винду. Все бесплатные либы под библиотеки как под Линах, так и под Винду, имеют низкое качество. Авторы отказываются гарантировать правильную их работу. Исключения из этого правила очень редки. Да и сам Линах в общем счете - это бета версия, нормально протестированы только основные пакеты, а остальные это сплошное Segmentation fault, core dumped.
Цитата
а вот не нада
SDL юзают
openNURBS юзают
продолжить список? (есть куча мат. либ)

Я както решил использовать Matrix Template Library. Закачал. Посмотрел примеры. Прикрепил к проекту. Потом надо было сделать небольшое изминение и я полез в доки, потом в исходники. И потом я прозрел: так код писать нельзя. Все слишком запутанно. Человек делал элементарные вещи извращенным способом, все черезмерно усложняя. Так я отказался от этой библиотеки. Не думаю что эти библиотеки намного лучше. Если другого варианта нет, то их конечно прийдется использовать, а иначе я старюсь этого не делать.
И другой пример. Закачал с http://codeproject.com врапер для SAFEARRAY - один файл, все элементарно, легко разобратся, стиль напоминайт Майкрософт. Она маленькая и легкая в поддержке любым программистом. Я за такие библиотеки.
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
Wowa
Дата 26.7.2004, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Олег, ты не прав! И такие рассуждение неуместны:
Цитата
Fantasist
базар фильтруй


Цитата
господин Orlan на вас работает?
если да то можно сразу оценить уровень подготовки ваших специалистов

Это также не тактично.
PM WWW   Вверх
oleg1973
Дата 26.7.2004, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Admin
Orlan
изначально был разговор о "совместимости" smile.gif асм + с/с++
потом плавно перетек на личности и на "совместимость" вообще библиотек от сторонних производителей.
рассмотрим ситуешн:
есть некий прожэкт
1) Orlan пишет GUI (визуальный он програмер,любит на форму кнопочки кидать)
2) Admin пишет логику
3) oleg1973 пишет мультитреадный парсер и работу с файлами (на асме пишет притом)
в чем проблема?
модуль oleg1973 экспортирует некии функ которые обрабатывает модуль Admin и все красиво отрисовывается модулем Orlan
проект сделан
и не надо только говорить "а что если oleg1973 умер, заболел, понос напал на него", проект не на 10 лет расчитан
с такимже шансом и Admin может заболеть , и порой понять С/С++ листинг тоже не легко



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


Шустрый
*


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

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



Если oleg1973 умер, заболел, понос напал на него или просто ушел в отпуск, уволился, то надо заниматся поддержкой его кода. И тут начинается самый кошмар. Нашли программера на Асм-е. Он начинает разбиратся в 10000 строках кода. И офигевает. Короче подправил код. Отправили заказчику. Глюк. От черт. Новичек не учел что модуль mod34 использует одну особенность из модуля ggg456, сформированную в модуле ghj_zzzz....
И так постоянно!!! Он новых фитчах не может быть и речи!
Заказчик не доволен!
А как вам такое развитие событий? Что вы думаете менеджер проекта скажет к Олег1973 на его просьбу писать длл на асьме? Неужели он не примет во внимание возможность смерти, болезни, поноса или простого ухода в отпуска на 4 недели, увольнения?
Проэкт не должен зависеть от героев, уход которых приводит к краху проекта
Цитата
проект сделан

Когда проект сделан начинается поддержка и об этом люди, которые считают деньги, никогда не забывают biggrin.gif . И неужели заказчик не захочет новых возможностей от него? Неужели вышел такой плохой продукт? Слишком много глюков? Код перестал быть контролированным что бы можно было его модифицировать?
Цитата
проект не на 10 лет расчитан

Проэкты это вам не студенчиские лабы! Они бывают очень долгосрочными. Проэкт, в котором я участвую уже длится 3 года. 80% комманды поменялося за это время
Цитата
с такимже шансом и Admin может заболеть

На место человека, который пишет логику на С++ элементарно найти человека, который сможет разобратся в коде. Даже студент подойдет, если алгоритмы не сложные.
Цитата
порой понять С/С++ листинг тоже не легко

Да. Но Асемблер на порядок трудней в понимании. И даже разобратся в идеальном асемблеровском коде бывает ну очень не легко
PS.
Цитата
1) Orlan пишет GUI (визуальный он програмер,любит на форму кнопочки кидать)

Кстати, почти никогда не был "визуальным программером" и недолюбливаю VCL. В основном "пишу логику"

Это сообщение отредактировал(а) Orlan - 26.7.2004, 16:37
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
oleg1973
Дата 26.7.2004, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Цитата
Но Асемблер на порядок трудней в понимании

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

а ты пробовал?
Цитата
Он начинает разбиратся в 10000 строках кода.

столько кернел у MinuetOs е занимает smile.gif)) этож не С/С++
Цитата
Проэкты это вам не студенчиские лабы! Они бывают очень долгосрочными. Проэкт, в котором я участвую уже длится 3 года.

и морально устаревает

а теперь тотже самый пример
начался понос у кодера (не визуального)Orlan
нашли быстренько студента чтоб тот за 2 недели разобрался в 10000 строках написаных на С/С++, но проблема что кодер Orlan использовал некие компоненты в которых есть глюки да и студент про них вообще ниче не слышал, а классы они тока на 3 курсе будут изучать, и в проекте мало кто знал что кодер )Orlan их использует(ну не будут же они мешать ему работать и постоянно лезть с вопросами " а что ето за фигня у тебя на форме?")
получается тажа самая ситуевина что и описана выше, так что все в мире относительно.



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


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



oleg1973 спецов по ассемблеру мало, спецов по C++ много, на этом можно поставить точку, оставив бесконечные дискуссии в стоторне. Просто человеческий фактор: "на асме трудно" сработает, а втирать "что легко" сложно и не нужно.



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
oleg1973
Дата 26.7.2004, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Sardar
ну дык я тоже так думаю

а разбирать чужой код полюбому сложно, внезависимости от того на чем написано


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


Око кары:)
****


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

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



Цитата
Да. Но Асемблер на порядок трудней в понимании. И даже разобратся в идеальном асемблеровском коде бывает ну очень не легко

Ну это просто бред. Я про асм только в книге пока читал и практически ни чего не писал, но почему то мне большая часть видимого мною кода вполне понятна. Лично я собираюсь серьезно заняться асмом на днях. А инкапсулируя код асма в методы класса, такие проблемы как что то не работает, вообще исчезнут. Да и для работоспособности кода его нужно правильно тестировать, учитывая все нюансы, зато выигрышь в производительности в некоторых ситуациях, судя по прочитаной литературе, просто огромен. И, для того, чтобы не было литого 10000-строкого кода, нужно, как я уже говорил, совмещать ООП с асмом, причем, правильное построение, класса, его методов, будет самодокументировать код и будет всем счастьеsmile.gif))

П.С. Еще добавлю - разобраться в чужом коде не сложно, если он хорошо написан. К примеру, на работе, мне бывало попадался такой код, в котором сам черт ногу сломит и это на PL\SQL(Я вообще иногда просто поражаюсь той писанине - километровые участки кода и ни какой модульностиsmile.gif ).

Это сообщение отредактировал(а) <Spawn> - 26.7.2004, 22:04


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Sardar
Дата 26.7.2004, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



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


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
oleg1973
Дата 27.7.2004, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Sardar
переноси тему



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


Шустрый
*


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

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



Цитата
Цитата
Но Асемблер на порядок трудней в понимании

типично ошибочное заблуждение

Замечено статистикой, что програмисты на одну строчку кода независимо от языка программирования тратят приблизительно одно и тоже время. Вот и выходит, что на ассемблеровских программ надо потратить намного больше времени. И это если еще не считать сложность языка программирования и отладки!
Цитата
Цитата
И даже разобратся в идеальном асемблеровском коде бывает ну очень не легко

а ты пробовал?

если б не пробывал, то и не говорил бы
Цитата
Цитата
Он начинает разбиратся в 10000 строках кода.

столько кернел у MinuetOs е занимает )) этож не С/С++

Видимо из за того, что столько много кода на асемблере, это операционка так "популярна", что я про нее никогда не слышал
Цитата
Цитата
Проэкты это вам не студенчиские лабы! Они бывают очень долгосрочными. Проэкт, в котором я участвую уже длится 3 года.

и морально устаревает

Конечно, но если это ассемблеровский проект с уволившимся ассемблеровским программером
В С++ такой код просто напросто переписывается!

Цитата
начался понос у кодера (не визуального)Orlan

Пример подобран неудачно. Переход на личности в спорах никогда к добру не приводил в спорах
Цитата

нашли быстренько студента чтоб тот за 2 недели разобрался в 10000 строках написаных на С/С++, но проблема что кодер Orlan использовал некие компоненты в которых есть глюки да и студент про них вообще ниче не слышал, а классы они тока на 3 курсе будут изучать, и в проекте мало кто знал что кодер )Orlan их использует(ну не будут же они мешать ему работать и постоянно лезть с вопросами " а что ето за фигня у тебя на форме?")
получается тажа самая ситуевина что и описана выше, так что все в мире относительно.

Есть MFC, ATL, STL - хорошо проверенные библиотеки. А у ассемблера что идально проверено? MOV AX, BX? FPU?
А по поводу студента, который не смог разобратся - не надо использовать трудный для понимания код от сторонних разработчиков.
Найти хорошо разбирающегося студента на С++ или Паскале на несколько порядков проще чем аналогичного для асемблера.

Это сообщение отредактировал(а) Orlan - 27.7.2004, 12:07
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
Wowa
Дата 27.7.2004, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Цитата
переноси тему

Из-за того, что некоторые стали отклоняться от темы обсуждения - не стоит переносить всю тему во флейм или еще куда-то, ведь цель у человека создавшего тему - была другая. Для переноса темы - должны быть причины. Если причнами является офтопик, то люди, которые его развели - должны получить по минусу и их сообщения должны быть удалены.
Добавлено @ 12:04
Поэтому Sardar все правильно сказал. Если кому-то интересно пофлеймить, то продолжайте дискуссию в отдельной теме, а тут только ссылку разместите на эту тему.


PM WWW   Вверх
Orlan
  Дата 27.7.2004, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
Модератор: Давайте вернёмся к теме обсуждения.

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

Не думаю. Дискурсии по поводу языка программирования это не вопрос какого текста должен быть цвет кода в IDE.
Цитата
Дискуссию предлагаю продолжить в отдельном топике.

Внимание обсуждающих заострилось только на языке программирования, все остальное отошло на второй план. Меня и Олега1973 интересовали эти вопросы. Другие были почти безразличны к постановке задачи из первого сообщения. Вам решать где должны находится такие темы.
Цитата
Поэтому Sardar все правильно сказал. Если кому-то интересно пофлеймить, то продолжайте дискуссию в отдельной теме, а тут только ссылку разместите на эту тему.

Не вижу здесь флейма. Есть небольшие подколики со стороны Олега1973 и молчаливое игнорирование их с моей стороны. По моему мнению основным офтопиком здесь является обсуждение флейма, а не вопрос на котором языке должна быть выполнена работа!

Это сообщение отредактировал(а) Orlan - 27.7.2004, 12:34
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
Wowa
Дата 27.7.2004, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



ладно, обсуждайте дальше, пока человек создавший тему не скажет свое мнение. Если он будет молчать дальше, то видимо его устраивает ход обсуждения.
PM WWW   Вверх
oleg1973
Дата 27.7.2004, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Цитата
Видимо из за того, что столько много кода на асемблере, это операционка так "популярна", что я про нее никогда не слышал

http://www.menuetos.org/
Цитата
Есть MFC, ATL, STL - хорошо проверенные библиотеки. А у ассемблера что идально проверено?

ну во первых это враперы скажем так, а не библиотеки
а во вторых никто не мешает использовать их с асмом
а в третих можно и winapi без гемороя использовать, канешно на MFC проще тоже самое окно создать (1 строчка) но факт в том, как ты сам должен понимать тоже MFC потом WINAPI использует
Цитата
А по поводу студента, который не смог разобратся - не надо использовать трудный для понимания код от сторонних разработчиков.

вот те на, приехали , а если мне позарезу нада либу для работы к примеру с 3ds файлами, а самому мне лень с их чанками разбиратся, тода как?
Цитата
Найти хорошо разбирающегося студента на С++ или Паскале на несколько порядков проще чем аналогичного для асемблера.

нуууу это смотря где искать smile.gif
Цитата
Есть небольшие подколики со стороны Олега1973

больше не буду, переду сразу к действиям smile.gif


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


asm fanat
****


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

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



Orlan
Цитата

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

вот смотри живой пример как оно будет на асме
Код

format PE GUI 4.0
entry start
include '%fasminc%\win32a.inc'
include 'ddraw.inc'
start:
invoke DirectDrawCreate,NULL,DDraw,NULL
comcall DDraw,SetCooperativeLevel,\
 [hwnd],DDSCL_EXCLUSIVE+DDSCL_FULLSCREEN
comcall DDraw,SetDisplayMode,640,480,8


hwnd dd ?
DDraw DirectDraw


в данном примере тоже самое что хочеш ты
не болит голова о номерах функ в обьекте и так далее
тоже самое будет и с "самодельным" обьектом
только вместо include 'ddraw.inc'
будет к примеру include 'myobj.inc' В с/с++ тоже вроде как еще инклуды не отменили?smile.gif
а мануаль в лубом случае читать придется с описанием методов обьекта
тут уж паралельно на с или асм писать
функ DirectDrawCreate не делает нифига кроме заполнения структуры DDraw адресами,справедливо для любого другого интерфейса, но не для самописного обьекта который уже определен
Код

struc MyObj
{
.func 1 dd MyFunc1
.func 2 dd MyFunc2
}

proc MyFunc1
...
proc MyFunc2
..

в данном случае createobject нафиг не нада (ну если только для понта чтоб адрес структ возвратить) так как структура обьекта уже заполнена адресам его методов-MyFunc1-MyFunc2
и если я делаю comcall Myobj,MyFunc1 то компилятор мне автоматом подставит адрес обьекта и указатель на адр функ MyFunc1

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


ошибаешся могу еще как
есть стандартные сишные либы в составе виндоса
crtdll.dll
msvcrt (на крайний случай)
из них могу преспокойно вызвать все что угодно хоть printf smile.gif
bstr как раз относится к стандартным функ

Цитата

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

мне не пришлось разбиратся в тонкостях СОМ, знал я это
месадж с еррором написать, не проблема
и по времени написание ну не чуть не больше чем на томже С




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


asm fanat
****


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

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



вот написал еще пример с dll в которой создается obj
и вызываются 2 его метода
Код
format PE GUI
entry start
include '%fasminc%\win32a.inc'
include 'superlib.inc'  <--- инклуд нашей либы
section '.code' code readable executable
start:

invoke SuperLibCreateObject,libz <---создаем obj :)
comcall libz,oleg1973 <--- вызываем первый метод
comcall libz,orlan    <--- вызываем второй метод
invoke ExitProcess,0 <--- выходим нафиг

section '.bss' readable writeable
libz superlib <--- указатель на массив куда запихаются адреса методов obj

data import    <--- че и откуда импортируем
library kernel32,'KERNEL32.DLL',\
slib,'superlib.DLL'
import kernel32,\
ExitProcess,'ExitProcess'
import slib,\
SuperLibCreateObject,'SuperLibCreateObject'
end data


все после компиляции получаем полноценную прогу
таблицу импорта можно и автоматом сгенерить, это я ее нарисоват тут для ясности
тестилось с fasm 1.53
в архиве исходники


Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  obj_asm.rar


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


Опытный
**


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

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



читаю дискуссию и наслаждаюсьsmile.gif. oleg1973, неужели вы считаете приведенный код читаемым?smile.gif)). Какая-то куча макросов и ни одной процессорной инструкцииsmile.gif)).
Особенно смущает comcall - используя C++, и то понятней какой код нагенерится, а тут даже не ясно это описание интерфейса или вызов его. Что будет с кодом при попытке реализации чего-нибудь содержательного, например, самобалансирующегося дерева - страшно подумать.

Кстати, на мой взгляд "ручная оптимизация" на асме занятие весьма сомнительное - грамотный c-оптимизатор нагенерит несколько более быстрый код (к тому-же совершенно нечитаемый). А основная действительно важная оптимизация лежит в области алгоритмов и не имеет к языку программирования никакого отношения.

Что касается поиска персонала, я думаю примерно одинаковый вред проекту могут принести как гипотетический ассемблерный гений олега, так и недоученный c++ программер орлана который пользуется врапперами и библиотеками классов не имея понятия как они работают.


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


asm fanat
****


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

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



Цитата
читаю дискуссию и наслаждаюсь. oleg1973, неужели вы считаете приведенный код читаемым?)). Какая-то куча макросов и ни одной процессорной инструкции)).

Андрюша, дебугером погляди
а макросы описаны в инклудах, нормальное явление кстати
Цитата
Особенно смущает comcall - используя C++, и то понятней какой код нагенерится, а тут даже не ясно это описание интерфейса или вызов его. Что будет с кодом при попытке реализации чего-нибудь содержательного, например, самобалансирующегося дерева - страшно подумать.

comcall обычный макрос, какой код он генерит опять же в инклуде описано, если не нравится код можно и сменить
Цитата
Кстати, на мой взгляд "ручная оптимизация" на асме занятие весьма сомнительное - грамотный c-оптимизатор нагенерит несколько более быстрый код (к тому-же совершенно нечитаемый)
ну тут еще поспорить можно
ты не обрашал внимания как компиляторы процедуры твои компилят?
погляди ради интереса
Цитата
Что касается поиска персонала, я думаю примерно одинаковый вред проекту могут принести как гипотетический ассемблерный гений олега, так и недоученный c++ программер орлана который пользуется врапперами и библиотеками классов не имея понятия как они работают.

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


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


Опытный
**


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

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



необходимость смотреть что-либо в дополнительных прогах - сомнительное достоинство языка. Впрочем, речь все-же не о сравнении cpp и асм, а о преимуществах и недостатках найма вместо среднего программера c++ крутого знатока ассемблера. Второй вариант сомнителен тем, что Олегу приходится попутно доказывать саму возможность разработки и поддержки кода библиотеки на асмеsmile.gif).
После этого нужно еще доказать целесообразность такого подходаsmile.gif.

oleg1973
Спорить по поводу ручной оптимизации - извольте. Предлагаю вам реализовать быструю сортировку на супервручнуюоптимизированном асме, я же скромно сделаю это на c++. Заведем соответствующий тред в форуме асма или с++ и сравним результаты - скажем, посчитаем тики проца для одинаковой выборки и получим разницу во времени исполнения. Если вы согласны - извольте. Делайте тред и ссылку сюда.

Кроме неуместного перехода на личности, аргументов по поводу равнозначности неграмотного с++ программера и гения асма не вижу. Скорее всего и тот и другой нагенерят код, который в лучшем случае будет работать на момент сдачи, а модифицировать его впоследствии силами остальных с++ программистов будет невозможно.


--------------------
PM MAIL WWW   Вверх
chipset
Дата 29.7.2004, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



Мдя ну и нафлеймили тут... wink.gif
Помойму все можно выразить двумя словами - "При работе в команде нужен не только один язык программирования но и общий стиль.. "
А господин oleg1973 из упрямости пытается доказать обратное..
Все мое ИМХО, программист я неопытный но прекрасно понимаю что чтение сложного кода написанного даже на С++ вызовет некоторые неувязки не говоря уж о асме..
ЗЫ. А в шарпе шаблоны есть biggrin.gif (или женерики), только в 2.0..


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
oleg1973
Дата 29.7.2004, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Цитата
необходимость смотреть что-либо в дополнительных прогах - сомнительное достоинство языка.

фраза пущенная в космос?
что в вами любимом VC дебугер отменили?
Цитата
что Олегу приходится попутно доказывать саму возможность разработки и поддержки кода библиотеки на асме

а я не доказываю, я показываю то чего видимо некоторые просто не знали
при некотором знании асма писать на нем не сложнее чем на С
Цитата
Предлагаю вам реализовать быструю сортировку на супервручнуюоптимизированном асме, я же скромно сделаю это на c+

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

бред
Добавлено @ 01:59
chipset
да и не только ты, ну как вы можете судить о том в чем ,пардон не бум-бум?
если человек не знает BASIC , то и он покажется ему и трудночитаемым и все такое


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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



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

бред

Есть такое понятие как поддержка программы, и даже иногда срочная отладка потому как видите ли у заказчика не работает какая то функция... mad.gif
И чем проще будет код тем лучше, в некоторых случаях даже на вижуал васике (впрочем появилась удобная альтернатива - шарп).
Добавлено @ 02:02
Цитата
да и не только ты, ну как вы можете судить о том в чем ,пардон не бум-бум?
если человек не знает BASIC , то и он покажется ему и трудночитаемым и все такое

Ну дак проще найти человека который понимает C++ чем асмиста имхо..


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
oleg1973
Дата 29.7.2004, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



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

тестить нада перед тем как заказчику отдавать...
Цитата
Ну дак проще найти человека который понимает C++ чем асмиста имхо..

на васик еще проще найти или на дельфи

Это сообщение отредактировал(а) oleg1973 - 29.7.2004, 02:10


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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



Цитата
тестить нада перед тем как заказчику отдавать...

Мир несовершенен.. sad.gif Не все можно протестить и при этом уложится в дедлайн..
Цитата
на васик еще проще найти или на дельфи

В этом случае человеку нужен как раз С++'ник потому как весь его штат состоит из С++ , хотя на дельфи тоже иногда требуются программеры... smile.gif И даже на васике! biggrin.gif



--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
v_ez
Дата 29.7.2004, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



мдяяя....как в одном приколе было написано :
"дорогая Лена, я б**** плачу и х***, х*** и плачу...."

это же сколько вы листов здесь извели из столь простенького объявления...
какой то нереальный спор про ассемблер...вообще каким боком его сюда припаяли? я же не сказал, что нужен человек на дельфях, на бэйсике или ассемблере - нужен человек на плюсах!!!
хорошо, что еще виртуально пообщались, а то наверное друг друга перемочили бы ещё ))
PM MAIL   Вверх
AndyY
Дата 29.7.2004, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



v_ez
Народ сюда больше пообщаться ходит, а не трудоустроитсяsmile.gif. Вот и по приколу религиозные войны типа C++ vs ASM. А программера здесь врядли найти можно. У меня для питера не получилось.


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


asm fanat
****


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

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



AndyY
Цитата
А программера здесь врядли найти можно

ну ты загнул



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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



Цитата
А программера здесь врядли найти можно

Конечно.. Откуда тут программеры??? qstn.gif biggrin.gif biggrin.gif biggrin.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
v_ez
Дата 29.7.2004, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



biggrin.gif biggrin.gif biggrin.gif блин, ну я так подумал, мало ли, кто то подцепиться захочет biggrin.gif
а holy war это клёво )))
PM MAIL   Вверх
Orlan
  Дата 29.7.2004, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
в данном примере тоже самое что хочеш ты
не болит голова о номерах функ в обьекте и так далее
тоже самое будет и с "самодельным" обьектом
только вместо include 'ddraw.inc'
будет к примеру include 'myobj.inc' В с/с++ тоже вроде как еще инклуды не отменили?
а мануаль в лубом случае читать придется с описанием методов обьекта
тут уж паралельно на с или асм писать

В С++ все создается автоматичиски - #import *.dll и все, а на ассембелре прийдется писать этот 'myobj.inc'. И описание методов на С++ читать не прийдется - разве что перед самым вызовом надо знать название метода, а какой он по порядку - все равно
Цитата
ошибаешся могу еще как
есть стандартные сишные либы в составе виндоса
crtdll.dll
msvcrt (на крайний случай)
из них могу преспокойно вызвать все что угодно хоть printf
bstr как раз относится к стандартным функ

А говорю о _bstr_t, а не BSTR - стандартном типе.
Да, ты сомжеш вызвать эту функцию - преобразование из Анси в Юникод. Там такие есть. Но тебе надо будет ее сперва найти tounge.gif . А С++ программер не напрягается на это.

Цитата
мне не пришлось разбиратся в тонкостях СОМ, знал я это

СОМ ты знал не срождения (я думаю biggrin.gif ), ты его изучал. А С++ программер вообще мог его не изучать, а почитать в это время книги скажем по алгоритмам.
Цитата
месадж с еррором написать, не проблема

А тебе никто не разрешал писать мессадж с еррором - тебе надо было вызвать исключение, что бы выше могли обработать. Вдруг твой код будет выполнятся на сервере. Вот кстати пример не универсальности твоей потенциальной либы - взаимодействие с пользователем на сервере.
В тех двух строчках кода, что я привел в самом начале, был предусмотрен вызов исключений при ошибках в создании, переходе на интерфейс и в вызове метода. А в твоем коде уже десятки строчек и никак не обрабатываются ошибки. А что буде дальше? Если требования ужесточатся. С++ программеру прийдется просто развернуть код и дописать свое, а ты будеш просто добавлять и добавлять код десятками строчек!
Цитата
и по времени написание ну не чуть не больше чем на томже С

Я так не думаю, 2 строчки против десятков других. Если писать не думая вообще (закрываю глаза на сложность Асма), будет дольше. И здесь еще не учтено время на отладку кода, что ты написал вместо хорошо отлаженных врапперов из С++!
Цитата
Что касается поиска персонала, я думаю примерно одинаковый вред проекту могут принести как гипотетический ассемблерный гений олега, так и недоученный c++ программер орлана который пользуется врапперами и библиотеками классов не имея понятия как они работают.

Мы здесь рассматриваем реальные проекты, когда неопытный С++ программер может подойти к коллеге и спроси у него, что не ясно. С++, Ява и Паскалевские программеры ему смогут помочь. А куда идти Асемблеровскому программеру? Маловероятно, что будет хороший знаток Асемблера в проекте.
PS. А не хочу сказать, что ассемблер плохой язык. На нем можно реализовать _абосолютно_ _все_ что можно сделать на С++ и подобных языках. Вопрос во сколько это обойдется. Сколько за это заплатит заказчик, сколько за это получит сам разработчик.
PPS.v_ez, может вы и найдете себе программиста. Мы вам создали неплохую рекламу: единственная горячая тема и на _порядок_ больше просмотров.
oleg1973 из Италии, я из Украины. Так что нас заинтерисовали только теоретические вопросы реализации проекта.
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
Alex101
Дата 29.7.2004, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(oleg1973 @ 28.7.2004, 22:56)
при некотором знании асма писать на нем не сложнее чем на С

Тут я согласен. Но времени это займет больше, а выигрыш в скорости работы приложения вряд ли будет существенным (разве что при работе с устройствами). Ну а что касается написания СУБД, то тут вопросы излишни...


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
oleg1973
Дата 30.7.2004, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Orlan
все доводы тобой приведенные относятся к удобствам компилятора
елементарно реализуются с помошью простых макросов
кстати *.inc тоже автоматом


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


Новичок



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

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



Orlan - согласен, тема на удивление оказалась действительно горяча! )))
Может и найдём здесь , посмотрим...вообще то это работа отдела кадров, но эти подлецы вообще суетиться не хотят )))
PM MAIL   Вверх
DENNN
Дата 30.7.2004, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



v_ez - респект. Свои кадры надо подбирать самому.

PM ICQ   Вверх
Orlan
  Дата 30.7.2004, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

Возможность записать код в одну строчку является большим преимуществом перед языком, который реализует тоже самое десятками строк кода. Прошли те времена, когда надо было писать на языках удобных для машин. Тепер можна писать на языках удобных для людей. И в этом помогают нам и современные удобные для разработки компиляторы.
С++ удобен сам по себе. А если еще добавить профессиональные библиотеки к нему, то вообще супер выходит biggrin.gif
Цитата
елементарно реализуются с помошью простых макросов

И почему же до сих пор при помощи макросов и знаний в ассемблере не реализовано то, что я выразил в 2-х строчках элементарного кода, или не предложено равноценной замены? ....
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
oleg1973
Дата 31.7.2004, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Orlan
Цитата
Возможность записать код в одну строчку является большим преимуществом перед языком, который реализует тоже самое десятками строк кода.

invoke SuperLibCreateObject,libz <---создаем obj smile.gif
comcall libz,oleg1973 <--- вызываем первый метод


2 строки, также как и у тебя
все остальное относится не к коду а к препроцессору



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


Шустрый
*


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

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



Цитата
все остальное относится не к коду а к препроцессору

Нет. Оно относится к языку С++ - конструкторы, инициализация объекта, вызов метода и прочее. Препроцесор - это только деректива #import, которая в твоих 2-х строчках, кстати и нереализована.

Цитата
invoke SuperLibCreateObject,libz <---создаем obj
comcall libz,oleg1973 <--- вызываем первый метод

Опять же, ты сильно упростил задачу. Например, нет _вообще_ обработки ошибок.
Я предложил тебе сделать альтернативный код к моему, который не уступал ничем.
Из этого кода можна сделать выводы: в ассемблере
1. Очень сложно делать обработку ошибок. Как я понял исключительные ситуации не предусмотрены в языке и их надо реальизовывать вручную. Программа на ассемблере должна молится на то, что бы случайно не оказалось свободного места на диске, случайно не пропала сеть - ведь она даже не скажет в чем заключалась ошибка.
2. Язык и библиотеки либо плохо документированы, либо очень слабы и не позволяют программерам легко и непринужденно реализовать стандартные операции (в данном случае преобразование Анси в Юникод)

И это только получается после сравнения двух строчек на обеих языках. А что же тогда будет, если сравнивать реальные программы? ...
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
oleg1973
Дата 3.8.2004, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Цитата
1. Очень сложно делать обработку ошибок. Как я понял исключительные ситуации не предусмотрены в языке и их надо реальизовывать вручную. Программа на ассемблере должна молится на то, что бы случайно не оказалось свободного места на диске, случайно не пропала сеть - ведь она даже не скажет в чем заключалась ошибка.

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

Цитата
2. Язык и библиотеки либо плохо документированы, либо очень слабы и не позволяют программерам легко и непринужденно реализовать стандартные операции (в данном случае преобразование Анси в Юникод)

а это просто смех вызывает
иди на intel.com там целый сайт языку и докам посвящен
а насчет библиотек, так их спецально для асма и нету, так как никто не запрещает использовать все стандартные библиотеки оси



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


Опытный
**


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

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



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


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


Шустрый
*


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

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



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

Нет, GetLastError возвращает код последней ошибки, а саму обработку исключений с использованием этой функции должен писать программер, если он не хочет конечто что бы его постоянно вылетала - тогда операционка точно обработает ошибку, если сама не подвиснет biggrin.gif
Цитата
а насчет библиотек, так их спецально для асма и нету, так как никто не запрещает использовать все стандартные библиотеки оси

А другие языки активно используют и другие библиотеки (не только "библиотеки оси"), что существенно усиливает их.

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


asm fanat
****


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

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



AndyY
тыб не вякал
по скорости то я тебя уделал аж в 8 раз (80 мс против 10 мс)

Orlan
Цитата
если он не хочет конечто что бы его постоянно вылетала - тогда операционка точно обработает ошибку, если сама не подвиснет

с умом сделаные проги как правило не глючат, почитай про SEH

Цитата
А другие языки активно используют и другие библиотеки (не только "библиотеки оси"), что существенно усиливает их.

тыж сам себе противоречиш, а как же глючные либы от сторонних производителей?
в данном вопросе надо отделить мух от котлет
к примеру если opengl то да это либа и без нее никуда
а вот то что находится в math.h это какбы вовсе не либа с Math functions , и асму это не нада
ну уж если совсем от нечего делать то в crtdll все это есть

ну а теперь ты приведи пример либы которую с асмом нельзя будет использовать


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


Опытный
**


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

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



oleg1973
1. твоя либа не работает.
2. твоя прога неправильно мерит время (см. статью про измерение времени на моем сайте).
так что сравнивать нечего.

во флейме наглядный пример работы ассемблер-спеца



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


asm fanat
****


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

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



AndyY
вернись во флейм родной
и посматри последний скриншот

и кстати GetTickCount возвращает ОБЩЕЕ кол-во тиков сделаных процом а не отдельным процессом
так что считать время данным методом неразумно

Это сообщение отредактировал(а) oleg1973 - 6.8.2004, 16:02


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


Шустрый
*


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

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



Цитата
с умом сделаные проги как правило не глючат

Ты прав
Но вопрос не в этом.
Спор от том сколько усилий надо приложить для написания таких прог
О сортировке. oleg1973 может взять алгоритм AndyY и дизасемблировать а потом прооптимизировать. И только поэтому oleg1973 заведомо в выиграше по скорость. Ну и что? Вы хотите потратить 1000 дол на зарплату программерам ради того что бы программа за все время эксплуатации работала на 1 минуту меньше? Ассемблер позовляет писать быстро выполняющиеся программы. И спрашивается: а это надо? Основной тормоз в программах это не процессор, а пользователь. Быстрота асемблера с легкостью компенсируется покупкой лучшего компа.
А вот теперь возмем MS Word - сложный продукт, миллионы строк кода, сложная иерархия классов. И в этом случае кто будет в выиграше? Сортировка - простая операция, которую можна написать на любом структурном языке. Но миллионы строк кода уже не напишеш на нем.
Цитата
почитай про SEH

SEH неудобна для С++ из за ее неуживчивости с деструкторами классов. А под Linux ты тоже будеш использовать SEH? biggrin.gif
Но это мы отклонились. Я говорил о генерации ошибок, а не их обработке. На верху можна сделать один блок обработки который будет ловить все генерируемые ошибки. Вопрос касался на счет генерации этих ошибок. В тех 2-х строчках заложено как минимум 3 генерации исключений. Если ты будеш писать на ассемблере, то тебе прийдется написать 3 сточки кода на вызов функций + 3 на их обработку. И это только в _идеальном_ случае, которых в реальных проектах не бывает. Т.е. выходит что тебе прийдется написатьв 6 раз больше кода. Как минимум. Согласно статистике (надеюсь не повторюся) в каждой сороковой строчке кода есть ошибка. И вот выходит. В твоем коде в 6 раз больше ошибок при одинаковых затратах.
Цитата
тыж сам себе противоречиш, а как же глючные либы от сторонних производителей?

Есть либы от Microsoft, Sun, Borland и др, которые хорошо протестированы и можна сказать безглючны.
Существуют либы 3-х видов (в моей классификации)
1. Системные библиотеки - *.dll и *.so файлы из операционки + другие продукты
2. Статически связываемые библиотеки (например MFC static linked)
3. Библиотеки, которые не требуют статического связывания (ATL, WTL, почти полностью STL)
Теперь такая ситуация с ними в Ассемблере:
1. Можна использовать. Основные сложность в синтаксисе вызова и генерации ошибок.
2. Альтернативы библиотек с высокоуровневых языков нету и поэтому используют вместо них библиотеки 1 как правило. Здесь основная сложность в том, что код просто возбухает на глазах и для добавления новой функции необходимы неимоверные усилия
3. Есть макросы, но это ничто по сравнения с шаблонными классами из STL. Макросы лишь упрощают трудоемкую работу
Цитата
ну а теперь ты приведи пример либы которую с асмом нельзя будет использовать

ATL, WTL, STL, а также MFC, VCL
Для них есть альтернативы - dll из операционки, но это слишком трудоемко, подобных к этим библиотек нету. Можно конечно использовать MFC длл-файлы, но зачем изворачиватся? Зачем лишний груз на голову программера?
--------------------
А вы знали, что терапевт - это 1024 гигапевта или 1048576 мегапевтов
PM MAIL   Вверх
Fantasist
Дата 9.8.2004, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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

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



Да что там говорить, асм совсем для других вещей предназначен.

Вот небольшой код (точнее его часть относящаяся к конструированию) для загрузки и выгрузки контейнера заполенного классами с общим предком. Реализуйте пожалуйста на асме, да так, чтобы любой программер мог с легкостью расширить библиотеку своими классами (как это сделанно с Derived).

Код

class BaseClass
{
public:
virtual ~BaseClass() {};
string getType() {return typeid(*this).name();};
virtual Serialize(StreamSerializer& serializer)=0;
};

class CClassFactory
{
private:
  typedef BaseClass* (*CreatorFunc)();
  static map<string,CreatorFunc> m_Creators;

public:

 template <class T>
 static BaseClass* CreateClass()
 { return new T(); }

 static BaseClass* Create(string typeName) throws Exeption
 {
CreatorFunc creator = m_Creators[typeName];
if (creator==NULL) throw Exeption("Creator for "+typeName+" is not found");
return creator();
 }

 static void AddCreator(string typeName, CreatorFunc func)
 {
  m_Creators[typeName] = func;
 }

 template <class T>
 static void RegiserCreator()
 {
  AddCreator(typeid(T).name(), CreateClass<T>);
 }
};

map<string,CClassFactory::CreatorFunc> CClassFactory::m_Creators;


template <class T>
class Creator
{
public:
Creator() {CClassFactory::RegiserCreator<T>();}
};

#define IMPLEMENT_CREATOR(class_name) Creator<class_name> class_name##CreatorStub


class Derived: public BaseClass
{
};

IMPLEMENT_CREATOR(Derived);


К вопросу о расширяемости.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Обсуждение работы | Следующая тема »


 




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


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

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