Чужое окно

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 06.08.2004 (Пт) 23:48

А разве то что сказал работает в Windows, использующей плоскую модель памяти?

===
Зубков.
---
Для обычных задач программирования нам не потребуется все многообразие возможностей адресации. Все, что нам нужно, — это удобный неограниченный доступ к памяти. Поэтому мы будем рассматривать простую модель памяти — так называемую модель flat, в которой базы всех регистров установлены в ноль, а лимиты — в 4 Гб. Именно в такой ситуации окажется, что можно забыть о сегментации и пользоваться только 32-битными смещениями.

Для создания flat-памяти нам потребуются два дескриптора с нулевой базой и максимальным лимитом — один для кода и один для данных.
===

Approximator
Постоялец
Постоялец
 
Сообщения: 572
Зарегистрирован: 26.06.2004 (Сб) 3:10

Сообщение Approximator » 07.08.2004 (Сб) 1:49

BP писал(а):А разве то что сказал работает в Windows, использующей плоскую модель памяти?

===
Зубков.
---
Для обычных задач программирования нам не потребуется все многообразие возможностей адресации. Все, что нам нужно, — это удобный неограниченный доступ к памяти. Поэтому мы будем рассматривать простую модель памяти — так называемую модель flat, в которой базы всех регистров установлены в ноль, а лимиты — в 4 Гб. Именно в такой ситуации окажется, что можно забыть о сегментации и пользоваться только 32-битными смещениями.

Для создания flat-памяти нам потребуются два дескриптора с нулевой базой и максимальным лимитом — один для кода и один для данных.
===

А это здесь причём? :) Всё равно в "плоском" адресном пространстве программы есть определённый порядок и именно он называется сегментацией (по крайней мере, на сегодняшний момент это так). Все процедуры программы делятся на сегменты (собственно, "архитектура" Wind'ы требует сегментации вне зависимости от способов адресации) и доступ к этим областям памяти (где находятся сегменты кода и данных) регулируется (как правило, сегменты кода не изменяемы для любого процесса). В реальности же флаги доступа к каждому сегменту (вне зависимости код ли это или же данные...) содержатся в mem-maped-образе - или по просту - исполняемом файле (.exe, .dll, etc). Так что для того получить доступ к любому сегменту любой программы всё же треба выставить эти флаги в режим разрешения чтения/записи... и усё. И непричём здесь адресация...
С уважением, Approximator.

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 07.08.2004 (Сб) 3:44

WASM.RU > СТАТЬИ > Секреты Win32
Приложение Windows «голыми руками»
===
Образ программы составлен из одного или нескольких объектов или секций, которые иногда называют по старинке сегментами. Однако они не имеют ничего общего со старой сегментной моделью, также, впрочем, как и с объектами в том значении, как они используются в языках программирования. Поэтому для обозначения разделов образа программы PE-файла лучше использовать термин «секции».

Разделение на секции нацелено главным образом на оптимизацию управления памятью Windows. По этой причине размеры загруженных в оперативную память секций должны быть кратны размеру страницы памяти (обычно 4 Кб) и выровнены по ее границе. Записанные в файл секции должны быть выровнены по границе «файловых страниц», размер которых кратен размеру сектора (512 байт) - это также сделано для оптимизации загрузки.

Approximator
Постоялец
Постоялец
 
Сообщения: 572
Зарегистрирован: 26.06.2004 (Сб) 3:10

Сообщение Approximator » 07.08.2004 (Сб) 5:15

BP писал(а):WASM.RU > СТАТЬИ > Секреты Win32
Приложение Windows «голыми руками»
===
Образ программы составлен из одного или нескольких объектов или секций, которые иногда называют по старинке сегментами. Однако они не имеют ничего общего со старой сегментной моделью, также, впрочем, как и с объектами в том значении, как они используются в языках программирования. Поэтому для обозначения разделов образа программы PE-файла лучше использовать термин «секции».

Разделение на секции нацелено главным образом на оптимизацию управления памятью Windows. По этой причине размеры загруженных в оперативную память секций должны быть кратны размеру страницы памяти (обычно 4 Кб) и выровнены по ее границе. Записанные в файл секции должны быть выровнены по границе «файловых страниц», размер которых кратен размеру сектора (512 байт) - это также сделано для оптимизации загрузки.

Это чем-то отличается от написанного выше? Вопрос ведь в доступе к данным сегмента (реально ровно никакого отличия сих сегментов от сегментов :), "которые были ранее", кроме соотнесения с пресловутой "архитектурой" (модульной организацией) Wind'ы, если не я не прав обоснуй - опиши конкретные отличия :)). Чем и как обеспечивается сохранность данных (кода) в сегменте, когда kernel выделяет память (уже в адресном пространстве программы) под сегмент? Где это прописывается? Как это "вылечить"? Есть разночтения с тем, что я сказал ранее? А так, мне спор о словах слабо интересен :)
С уважением, Approximator.

Approximator
Постоялец
Постоялец
 
Сообщения: 572
Зарегистрирован: 26.06.2004 (Сб) 3:10

Сообщение Approximator » 07.08.2004 (Сб) 5:29

BP писал(а):WASM.RU > СТАТЬИ > Секреты Win32
Приложение Windows «голыми руками»

Кста, по поводу такой ссылки уже высказывался вот здесь:
http://bbs.vbstreets.ru/viewtopic.php?t=8914

Ребята льют воду, на в обмем-то простые вещи... это в народе называется - кидать понты... типа, "человек, умеющий программить на ASM'е (тем паче в маш.кодах) это круто". Никто не спорит - это замечательно - только ничего экстраординарного в этом нет. Сейчас, после плотного изучения формата PE я вообще просто влинковываю в "обычные" VB-прогаммы/библиотеки компактные вставки в маш.кодах. С одной стороны, нет головной боли заботиться о прочих сторонах организации всего кода (он и так хорошо выстроен компилятором); с другой стороны, любую критическую ситуацию (а у меня много сложных математических рассчётов) можно решить с помощью компактных вставок. И скажу, что подобная организация, на мой взгляд, рациональнее. ЯВУ должны быть везде где нет необходимости в какой-то экстраординарной оптимизации... говорил здесь уже не раз, что проще и разумнее оптимизировать "VB-код" (даже компиллированный), чем клепать на ASM'е "приложения" длинной за килобайт... так, что менее впечатлительно и более критично надо относиться к тому, что говорят "профи" от ASM'а. Как там у классика было про мат.часть? :)
С уважением, Approximator.

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 07.08.2004 (Сб) 11:49

Т.е. ты хочешь сказать что в плоской модели адресация всё равно сегментирована по 64 кБ?

А что такое тогда это?
... для начала выполним переключение в 32-битную модель памяти flat, где все сегменты имеют базу 0 и лимит 4 Гб.

От WASM.RU я и сам не восторге. Когда я пытлся сделать поддержку строк для своего ассемблера(http://basicproduction.nm.ru/ASM/LASM), я задал там вопрос "как VB создаёт строки?".
На что небезызвестный ламер vAlOdYa ответил что VB - это ересь и языком программирования не считается. Но нельзя судить всех посетителей этого сайта по тупости админов. Неужели ты считаешь что знаешь ассемблер лучше всех посетителей WASM.RU и тебе абсолютно нечему у них поучится?

>человек, умеющий программить на ASM'е (тем паче в маш.кодах)
- Он вовсе не в машинных кодах программу делает, а в программе DEBUG. Я её знаю не очень хорошо, но то что там ассемблер есть - это точно.

>ЯВУ должны быть везде где нет необходимости в какой-то экстраординарной оптимизации... говорил здесь уже не раз, что проще и разумнее оптимизировать "VB-код" (даже компиллированный), чем клепать на ASM'е "приложения" длинной за килобайт
- Одно дело когда нормальный ЯВУ, а когда он так далёк от программирования, что больше напоминает скриптовый язык, то эту простоту уже и программированием назвать сложно.
Согласись, VB сложно назвать профессиональным языком программирования и проявить творчество на нём крайне тяжело. Писать программы можно только по шаблону. Шаг влево, шаг вправо - крах или использование других языков. API - основа программирования под Window's, играют в нём побочную роль и не документированы вовсе.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.08.2004 (Сб) 12:50

:?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2004 (Сб) 13:37

BP писал(а): Согласись, VB сложно назвать профессиональным языком программирования и проявить творчество на нём крайне тяжело. Писать программы можно только по шаблону. Шаг влево, шаг вправо - крах или использование других языков. API - основа программирования под Window's, играют в нём побочную роль и не документированы вовсе.

Не соглашусь. Творчество на нём проявить тяжело тем, кто его плохо знает. Писать программы можно как угодно, никто тебя ни в какие рамки не загоняет. API прекрасно документирован в MSDN, проблем с его использованием нет никаких. COM - основа программирования в VB, играющий в нём основную роль, позволяет тебе не задумываться о многих деталях, которые портят жизнь в других языках. Вроде memory management-а, контроля за lifetime объектов, работы со строками и т.п.

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

Критика VB, как и Винды, давно уже стала общим местом. Никто не задумывается, прежде чем их критиковать. "Ну, типа, там багов много, глюки и всё такое... И ваще всё это для ламеров, а нормальные пацаны юзают [название продукта]". Грустно это.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.08.2004 (Сб) 15:11

:!: :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 07.08.2004 (Сб) 16:20

>Не соглашусь. Творчество на нём проявить тяжело тем, кто его плохо знает. Писать программы можно как угодно, никто тебя ни в какие рамки не загоняет. API прекрасно документирован в MSDN, проблем с его использованием нет никаких. COM - основа программирования в VB, играющий в нём основную роль, позволяет тебе не задумываться о многих деталях, которые портят жизнь в других языках. Вроде memory management-а, контроля за lifetime объектов, работы со строками и т.п.

- API прекрасно документирован для Си++. Если весь язык построен на технологии COM, то это достоинство плавно перетекает в недостаток. А если сравнить эти "достоинства" с его недостатками? Такими как ложное направление стиля программирования, низкая скорость работы приложения и зависимость от виртуальной машины? Отсутсвие даже отдалённых представлений об устройстве процессора и памяти?

---

>VB - замечательный язык. Но самое замечательное в нём то, что никто никого писать на нём не принуждает. Не нравится - пиши на чём хочешь.

- У программиста на языке БЕЙСИК просто нет другого выбора. Или MS BASIC или ничего.

---

>Критика VB, как и Винды, давно уже стала общим местом. Никто не задумывается, прежде чем их критиковать. "Ну, типа, там багов много, глюки и всё такое... И ваще всё это для ламеров, а нормальные пацаны юзают [название продукта]". Грустно это.

- Такое ощущение что все твои доводы взяты с какого то общего шаблона. Неправда ли сильно смахивает на "Мышление в стиле Visual Basic"?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2004 (Сб) 17:04

BP писал(а): - API прекрасно документирован для Си++. Если весь язык построен на технологии COM, то это достоинство плавно перетекает в недостаток. А если сравнить эти "достоинства" с его недостатками? Такими как ложное направление стиля программирования, низкая скорость работы приложения и зависимость от виртуальной машины? Отсутсвие даже отдалённых представлений об устройстве процессора и памяти?
- У программиста на языке БЕЙСИК просто нет другого выбора. Или MS BASIC или ничего.
- Такое ощущение что все твои доводы взяты с какого то общего шаблона. Неправда ли сильно смахивает на "Мышление в стиле Visual Basic"?

1. Никаких проблем с вызовом API из-под VB не было и нет.
2. "Виртуальной машиной" msvbvm называют только лишь по старой памяти. Начиная с VB5, производится полноценная компиляция, и msvbvm используется исключительно как рантайм-библиотека. Может, ты ещё kernel32 "виртуальной машиной для Win32-приложений" назовёшь?
3. "ложное направление стиля программирования" - это что? не понял смысл фразы.
4. "низкая скорость работы приложения" - в большинстве приложений скорости, достижимой на VB, достаточно. Однако интересно, что конкретно ты имел в виду.
Ну и не надо перекладывать программирование с программиста на компилятор. Неэффективно написанная программа на любом языке будет тормозить.
5. "Отсутсвие даже отдалённых представлений об устройстве процессора и памяти" - у кого отсутствие представлений, у языка или у программиста? ;-)
Если язык скрывает от программиста неинтересные ему детали устройства компьютера, это только во благо. А что, Си не скрывает? Или призываешь всех на Ассемблер переходить?
6. У программиста на языке Бейсик есть возможность выучить другой язык. Я писал далеко не только на VB, и мне есть, с чем его сравнивать. А тебе?
Потом, кроме MS-компиляторов, есть ещё тыща от "третих фирм". И под DOS, и под Win32, и под всякие люниксы. Однако естественно, что VB - наиболее распространённый, совершенный, отлаженный и поддерживаемый из них всех.

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

У каждого языка есть преимущества и недостатки. Флеймы "Asm vs C, C vs Pascal, C vs C++" стары как мир и никого ничему не убедят. Есть только один критерий выбора языка: нравится - используй. Если ты считаешь, что VB может нравиться только "ацтойным ламерам", не собираюсь тебя переубеждать.

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 07.08.2004 (Сб) 17:43

>1. Никаких проблем с вызовом API из-под VB не было и нет.
- Но для VB они не документированы.

>2. "Виртуальной машиной" msvbvm называют только лишь по старой памяти. Начиная с VB5, производится полноценная компиляция, и msvbvm используется исключительно как рантайм-библиотека. Может, ты ещё kernel32 "виртуальной машиной для Win32-приложений" назовёшь?
- MSVBVM - Microsoft Visual Basic Virtual Machine

>3. "ложное направление стиля программирования" - это что? не понял смысл фразы.
- Поэтому и не понял.

>4. Неэффективно написанная программа на любом языке будет тормозить.
- Опять шаблон. У тебя там справочника случайно специального нет. Отмазки для VB-ламеров.

>5. Если язык скрывает от программиста неинтересные ему детали устройства компьютера, это только во благо
- Ага, Микрософту. ;)

>6. У программиста на языке Бейсик есть возможность выучить другой язык. Я писал далеко не только на VB, и мне есть, с чем его сравнивать.
- Ну и с чем?
>Потом, кроме MS-компиляторов, есть ещё тыща от "третих фирм". И под DOS, и под Win32, и под всякие люниксы. Однако естественно, что VB - наиболее распространённый, совершенный, отлаженный и поддерживаемый из них всех.
- Во первых он просто насильно был насаждён. Совершенный он только для школьной программы. Отлаженный? А какой сервиспак у тебя стоит? А у других?

>Ещё раз. Если ты не знаешь или не любишь язык - не обвиняй в этом язык.
- Не считаю VB эталоном языка БЕЙСИК.

>У каждого языка есть преимущества и недостатки. Если ты считаешь, что VB может нравиться только "ацтойным ламерам", не собираюсь тебя переубеждать.
- Раньше БЕЙСИК изучали в ПТУ, а Паскаль в ВУЗ'ах. Сейчас VB изучают в школе. БЕЙСИК - Многоцелевой язык символических инструкций для начинающих. Так сказать введение в программирование. Считаю что начинать программистский путь нужно именно с него. А доказывать его крутость могут действительно только "ацтойне ламеры".

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.08.2004 (Сб) 18:16

BP писал(а):- Но для VB они не документированы.

Декларация - ApiViewer 2003. Описание работы - msdn.
BP писал(а):- MSVBVM - Microsoft Visual Basic Virtual Machine

Ага :)
BP писал(а):- Поэтому и не понял.

Я тоже не понял.
BP писал(а):- Опять шаблон. У тебя там справочника случайно специального нет. Отмазки для VB-ламеров.

Будет тормозить на любом языке, если написано хреново. Не будет тормозить на VB, если написано не хреново.
tyomich писал(а):Если язык скрывает от программиста неинтересные ему детали устройства компьютера, это только во благо

Если язык скрывает то, что программисту действительно неинтересно, то это хорошо. А если то, что интересно - то это ещё лучше, поскольку заставляет глубоко копать и напрягать извилины.
BP писал(а):- Ну и с чем?

На VB писал, на дельфи, на C++, на асме. Мне всё нравится, и всё юзаю для разных целей. А часто в связке, так вообще прекрасно.
BP писал(а):- Не считаю VB эталоном языка БЕЙСИК.

Того, самого первого? Я его уже не застал, так что вежливо промолчу :)
BP писал(а):- Раньше БЕЙСИК изучали в ПТУ, а Паскаль в ВУЗ'ах. Сейчас VB изучают в школе. БЕЙСИК - Многоцелевой язык символических инструкций для начинающих. Так сказать введение в программирование. Считаю что начинать программистский путь нужно именно с него. А доказывать его крутость могут действительно только "ацтойне ламеры".

Бейсик (не VB) до сих пор изучают в школах, и ещё долго будут изучать (ты видел материально-техническую базу, как то компы и методлитература, средней русской школы? Я видел.).
VB очень хорош для тех целей, для которых он предназначался (это я доказываю его крутость). Я его юзал и буду юзать, несмотря на то, что знаю и другие языки.

Контрольный вопрос: сам-то почему на VB кодишь? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 07.08.2004 (Сб) 19:06

>Декларация - ApiViewer 2003. Описание работы - msdn.
- При чём тут декларации? А описание там для Си. Странно что ты не заметил.

>Будет тормозить на любом языке, если написано хреново. Не будет тормозить на VB, если написано не хреново.
- А ты возьми ради прикола пустой цикл погоняй. А потом вставь строчную операцию. И сравни скорость VB и другого языка.

>Если язык скрывает то, что программисту действительно неинтересно, то это хорошо. А если то, что интересно - то это ещё лучше, поскольку заставляет глубоко копать и напрягать извилины.
- Ну задолбали шаблонами. Ведь это же не аргумент. Зачем же через ж...

>На VB писал, на дельфи, на C++, на асме.
- Имелись ввиду различные компиляторы Бейсика от разных производителей.

>Бейсик (не VB) до сих пор изучают в школах, и ещё долго будут изучать
- Нет, в школах изучают как раз VB.

>ты видел материально-техническую базу, как то компы и методлитература, средней русской школы?
- Нет. Всю жизнь прожил на Украине.

>Контрольный вопрос: сам-то почему на VB кодишь?
- А потому что другого ничего не было под Винду. А PB только недавно появился. И то случайно. Кто то у себя в локалке нашёл и в сеть выкинул. Так он и распространился по инету :) Неплохой кстати язык. Вот только с VB не очень дружит (со строками).

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Упс ... начали за здравие ... а кончили то как 8(

Сообщение xenomorph » 07.08.2004 (Сб) 19:20

Так как насчёт enable_debug_privileges + open process + read_mem ?...
Каждая жаба своё болото ... (дальше догадаетесь *) -
Так кто-то напишет просмотрщик РАМ на VB?
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.08.2004 (Сб) 19:32

BP писал(а):- При чём тут декларации? А описание там для Си. Странно что ты не заметил.

Там – это в msdn? Да, там для Си. Декларация там для Си. А описание работы функции (что делает и для чего нужны параметры) от языка не зависит. А чтобы заюзать из бейсика, нужна декларация, а их куча в ApiViewer’е.

BP писал(а):- А ты возьми ради прикола пустой цикл погоняй. А потом вставь строчную операцию. И сравни скорость VB и другого языка.

Фи, батенька... Речь же совсем не о том. Речь о том, что писать нужно красиво, и тогда всё будет быстро и на VB. Ради прикола гонять пустой цикл я не буду. Ты мой маленький примерчик про вызов по указателю видел? :) Там есть библа, вызываемая через Declare, писана на асме. Время работы такое же, как родной код VB, хотя цикл совсем не пустой.

BP писал(а):- Ну задолбали шаблонами. Ведь это же не аргумент. Зачем же через ж...

Я не знаю этого шаблона. Это моя мысль, и я её думаю. Я поделился ею с тобой. У меня нет работы с указателями – я её делаю. И вызов по указателю тоже. А что мне ещё надо?

BP писал(а):- Нет, в школах изучают как раз VB.

См. ниже.

BP писал(а):- Нет. Всю жизнь прожил на Украине.

Вот, собственно, и ниже :) А я всё это видел, так сказать, изнутри. И с преподами общался. QBasic, и только он. Ну ещё работа с офисом, самые-самые азы.

BP писал(а):- А потому что другого ничего не было под Винду.

То есть это как? :? А Дельфи? (восьмая версия уж, поди?). А C++ ?

BP писал(а):А PB только недавно появился. И то случайно. Кто то у себя в локалке нашёл и в сеть выкинул. Так он и распространился по инету Неплохой кстати язык. Вот только с VB не очень дружит (со строками).

Иными словами, появлению этого языка в инете мы обязаны некоему челу, который выкинул его из своей локалки? Это очень круто! Особенно если учесть наличие официального сайта разработчиков.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Упс ... начали за здравие ... а кончили то как 8(

Сообщение tyomitch » 07.08.2004 (Сб) 19:33

xenomorph писал(а):Так кто-то напишет просмотрщик РАМ на VB?

А что надо-то? Выше в топике хотели текст из чужого лейбла читать, а сейчас что? Отладчик на VB пишем? :-)

Или может, это: http://www.freevbcode.com/ShowCode.asp?ID=4115
От самого Оловянникова! B-)

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 07.08.2004 (Сб) 21:14

GSerg,
Шаблоные ответы - это когда кто-то один раз придумал, а остальные за ним повторяют. Если я такое уже видел, то называю это шаблонным ответом.
Вот например взять хотя бы документированность API для VB или скорость выполнения программы.
Ведь я то сказал так как оно есть на самом деле, а ты либо выдаешь желаемое за действительное либо намернно искажаешь факты.

>QBasic, и только он. Ну ещё работа с офисом, самые-самые азы.
- Я в том году работал системщиком в ВУЗе и спрашивал у 1-во курсников что они проходили по информатике. Говорили что VB. Может врали ? :)

>А Дельфи? (восьмая версия уж, поди?). А C++ ?
Никогда таким не увлекался. Может и зря конечно, но Бейсик я с детства знаю. Отсюда и выводы что именно я хотел найти для себя - хороший компилятор языка Бейсик.

>Это очень круто! Особенно если учесть наличие официального сайта разработчиков.
- К сожалею не обладаю суммой в 200 вечнозелёных для покупки этого продукта. А если бы даже и обладал, то всё равно бы не заплатил из принципа :)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.08.2004 (Сб) 21:32

BP писал(а):Шаблоные ответы - это когда кто-то один раз придумал, а остальные за ним повторяют. Если я такое уже видел, то называю это шаблонным ответом.

Как-то в начале 20 века проводился конкурс на лучшую походку в стиле Чаплина. Сам Чарльз Спенсор Чаплин занял в конкурсе 4 место.

BP писал(а):Вот например взять хотя бы документированность API для VB или скорость выполнения программы.
Ведь я то сказал так как оно есть на самом деле, а ты либо выдаешь желаемое за действительное либо намернно искажаешь факты.

У меня есть документированные API для VB. Следовательно, я не искажаю этот факт :) И у всех они есть. А у тебя их нет, и меня это удивляет :)
Скорость? Плата за безопасность и простоту. Язык хорош для того, для чего он предназначался.

BP писал(а):- Я в том году работал системщиком в ВУЗе и спрашивал у 1-во курсников что они проходили по информатике. Говорили что VB. Может врали ?

Нагло :)
Хотя эта ветка не имеет смысла ввиду различности вузов и школ.

BP писал(а):Никогда таким не увлекался. Может и зря конечно, но Бейсик я с детства знаю. Отсюда и выводы что именно я хотел найти для себя - хороший компилятор языка Бейсик.

PowerBasic... Хе-хе :)
Хотя тебя сложно понять – то любишь бейсик, то отстойный он...

BP писал(а):- К сожалею не обладаю суммой в 200 вечнозелёных для покупки этого продукта. А если бы даже и обладал, то всё равно бы не заплатил из принципа

Без комментариев :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2004 (Сб) 22:31

GSerg писал(а):
BP писал(а):- Я в том году работал системщиком в ВУЗе и спрашивал у 1-во курсников что они проходили по информатике. Говорили что VB. Может врали ?

Нагло :)
Хотя эта ветка не имеет смысла ввиду различности вузов и школ.

У меня брата в школе учили VB. Полгода. Для сдачи на пятёрку нужно было написать программу такого содержания:
Код: Выделить всё
MsgBox "Привет, " & InputBox("Как тебя зовут?", , "Незнакомец") & "!"

Причём пятёрку получили не все...

Ещё они полгода учили Паскаль, на таком же уровне.

Вывод: всё зависит от того, как учить. Можно так, что у учеников на всю жизнь останется впечатление "Фу, какой ацтойный ламерский язык", которым они не преминут поделиться с окружающими. А можно по-хорошему :-)

2BP: на Бейсике свет клином не сошёлся. Не нравится VB - учи те же Дельфи, VC и т.п. А то так всю жизнь и прождёшь появления компилятора Бейсика "для чиста нормальных пацанов".

PS: а про пустой цикл и строковые операции - это не шаблон? :-D

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 07.08.2004 (Сб) 22:44

>Хотя эта ветка не имеет смысла ввиду различности вузов и школ.
- Пропустил одно слово. Я имел ввиду в школе.

>PowerBasic... Хе-хе
И чем он тебе не нравится?

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 08.08.2004 (Вс) 0:03

Почти полностью согласна с GSerg'ом. Но тем не менее кое-что хотелось бы написать.

2BP:

1.Ты говоришь, что VB прекрасно документирован для C++, но ты учитывай, что он хорошо документирован только для MS VC++, для Borland C++ Builder, так же как и для остальных реализаций С++ под Win документацию по API найти так же сложно, как и для Делфи и прочих языков программирования не поддерживаемых Microsoft. А для VB действительно API очень хорошо документированы. Возьми тот же MSDN и KB. Есть гора справочников по API для VB. И если у тебя их нет, то это не означает, что их вобще нет.

2.Низкая скорость работы и зависимость от виртуальной машины? А как тебе VB.NET? Да будет тебе известно, что VB.NET и VC++.NET используют общую библиотеку. А как же возможность писать в среде .NET многоязыковые приложения? Неужели здесь встанет вопрос в отличии скорости приложения на VB.NET и VC++.NET? Да и если есть небольшое отличие в скорости приложений на VB 6 и том же VC++ 6, то оно практически незаметно на современных компьютерах. Я не думаю, что то, что программа запустится на десятую долю секунды медленнее многое решит. Или ты со мной не согласен?

3.Отсутсвие даже отдалённых представлений об устройстве процессора и памяти? Тебе так необходимо понятие об устройстве процессора и памяти при разработки прикладных приложений? А если пишешь что-то системное, используй асмеблер, кто тебе мешает? Да и API дает прекрасные возможности работать на низком уровне с памятью. У меня где-то был пример, который читал данные из БИОСа. К тому же в начале этой темы ты сам прекрасно доказал, что с памятью в VB можно работать через API. К тому же множество фишек из C++ были реализованы в VB.NET.

4.
У программиста на языке БЕЙСИК просто нет другого выбора. Или MS BASIC или ничего.

А вот это не надо. Есть Phoenix Object Basic (основная реализация была для Linux'а, но для винды тоже вроде существует), к тому же он бесплатный. Dark Basic - офигительная штука для написания игр, позволяет грузить и использовать объекты из 3D Max'а. Список можно продолжать еще достаточно долго. Диск такой есть в продаже точно (я покрайней мере нашла). И еще, разделения программистов по языкам по меньшей мере глупо. Главное, что отличает программиста - это знание не конкретного языка программирования, а в общем концепций программирования. А выучить язык, если ты знаешь конценпции - это не проблема. И не нужно все сваливать в одну кучу и пытаться сделать из велосипеда машину. Если Асемблер не предназначен для написания графических приложений (хотя на нем это конечно можно сделать, но это будет крайне глупо), то и не надо пытаться писать на VB дебагеры и программы для мобильных устройств. Для каждой задачи нужно выбирать наиболее оптимальный способ решения.

5.
Согласись, VB сложно назвать профессиональным языком программирования и проявить творчество на нём крайне тяжело. Писать программы можно только по шаблону. Шаг влево, шаг вправо - крах или использование других языков.

Знаешь, если я тебе скажу, что по крайней мере половина Microsoft Office написана на VB, да и еще многие прекрасные программы и компонеты, как пример, компонента для работы с графикой ImageX, которая по функциая мало чем отличается от пятого фотошопа, где-то год назад здесь проскакивал чудесный 3D движок, Гайдаровский iEdit, твое мнение о непрофессиональности VB изменится? Действительно, проявление творчества в главной степени зависит от программиста, а реализовать практически все, что угодно можно на любом языке. Ты думаешь, что если ты будешь писать на C++, то у тебя это будет получаться лучше, чем на VB?
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Approximator
Постоялец
Постоялец
 
Сообщения: 572
Зарегистрирован: 26.06.2004 (Сб) 3:10

Сообщение Approximator » 08.08.2004 (Вс) 3:30

BP писал(а):Т.е. ты хочешь сказать что в плоской модели адресация всё равно сегментирована по 64 кБ?

А ты попробуй написать "секцию" больше 64 кб. Очень сильно удивишься. Это во-первых, а во-вторых, сегментами их называли вовсе не за то, что их НУЖНО было делить на 64 кб, а за то, что они БЫЛИ разделены. Любое деление называлось сегментацией, просто максимум раньше был 64 кб... сейчас вроде бы ограничение стало выше - "почти возможно использовать все 4гб" реально означает, только лишь иной способ адресации, а не организации кода вообще. То есть унутре адресного пространства программы стало проще жить. И всё.
А что такое тогда это?
... для начала выполним переключение в 32-битную модель памяти flat, где все сегменты имеют базу 0 и лимит 4 Гб.

дык попробуй, вгрузи сегмент КОДА такой длины.
От WASM.RU я и сам не восторге. Когда я пытлся сделать поддержку строк для своего ассемблера(http://basicproduction.nm.ru/ASM/LASM), я задал там вопрос "как VB создаёт строки?".
На что небезызвестный ламер vAlOdYa ответил что VB - это ересь и языком программирования не считается. Но нельзя судить всех посетителей этого сайта по тупости админов. Неужели ты считаешь что знаешь ассемблер лучше всех посетителей WASM.RU и тебе абсолютно нечему у них поучится?

:) Как-то так вышло, что я несколько иначе смотрю на эту "проблему". У меня обычно есть алгоритмическое решение (так уж вышло, что я в своё время преподавал в университете "всяким раздолбаям" прикладную математику, а теперь занимаюсь наукой). На особенности языка мне плевать, так как я заранее знаю, где может быть задержка во времени (она на самом деле изначально сидит в алгоритме, и очень редко зависит от языка). Далее мне необходимо подобрать подходящую среду для быстрой проверки этого алгоритма. Лет пятнадцать тому назад я кодил на ASM'е, Паскале и "прочих сях". Сегодняшний асм - не то (архитектура винды всё равно рулит и большую часть современной программы на асме реальною юзаешь те же самые API). А если мне необходимо сделать быструю вставку в маш. кодах, то проще и безопаснее её влинковывать именно в VB-компиляты.
>человек, умеющий программить на ASM'е (тем паче в маш.кодах)
- Он вовсе не в машинных кодах программу делает, а в программе DEBUG. Я её знаю не очень хорошо, но то что там ассемблер есть - это точно.

ASM есть там, где он тебе нужен. Если ты действительно умеешь программить, то и использовать ASM в среде VB для тебя - разрешимая задача. А если сам по себе ASM для тебя это исключительно какие-то конкретные ASM-компиляторы, то :) - иди учись и не порть остальным людям настроение.
>ЯВУ должны быть везде где нет необходимости в какой-то экстраординарной оптимизации... говорил здесь уже не раз, что проще и разумнее оптимизировать "VB-код" (даже компиллированный), чем клепать на ASM'е "приложения" длинной за килобайт
- Одно дело когда нормальный ЯВУ, а когда он так далёк от программирования, что больше напоминает скриптовый язык, то эту простоту уже и программированием назвать сложно.

Очень не хочется тебя обижать. :) У VB удачно реализованы многие интерфейсные "штучки-дрючки". Приячём я не говорю о выскоуровневом интерфейсе, я говорю о кодовом решении.
Согласись, VB сложно назвать профессиональным языком программирования и проявить творчество на нём крайне тяжело.

Напоминаешь мне одного двоечника, который брыкался учиться программировать на паскале... ему тоже с ходу нужен был ASM, а х... толку? Ведь вопрос иключительно в алгоритмах. Особенности языка почти всегда можно учесть.
Писать программы можно только по шаблону. Шаг влево, шаг вправо - крах или использование других языков. API - основа программирования под Window's, играют в нём побочную роль и не документированы вовсе.

Я заметил, что ты ниже всех обвинял в шаблонных ответах. Но от тебя я кроме шаблонной бредятины, которую ты здесь написал, безусловно, не подумав хорошо я не заметил. Прости за резкость - хочу тебя взбодрить. :)
>Будет тормозить на любом языке, если написано хреново. Не будет тормозить на VB, если написано не хреново.
- А ты возьми ради прикола пустой цикл погоняй.

:) Компилировать пробовал? :) Если бы ты хоть чуть-чуть знал о том языка, о котором ты себе позволил столько бредятины написать, то устыдился бы... :) Функции в VB оргназованы очень плотно, единственным источником задержек являются проверки данных разных типов, а также дефолтная конвертация, если же код написан правильно и грамотно выставлена оптимизация при компилировании, то проблемы будут возникать крайне редко... Так у меня проги на VB работают с массивами, состоящими из более, чем 1 млн. элементов. Считают всё очень быстро, потому что оптимизированы мною. Подозреваю, что если бы ты писал то же самое на ASM'е или просто другом ЯВУ, то вряд ли бы скорострельность твоего кода отличалась бы от неоптимизированного VB'эшного... :)
А потом вставь строчную операцию. И сравни скорость VB и другого языка.

Дык, ты бы попробовал использовать голову. Обычно - помогает. Одно дело, если тебе нужно ЕДИНОЖДЫ вывести:
Код: Выделить всё
"VB"  & " + " & "BP" & " = " & "хрен пойми что"

И совсем другое, если тебе нужно получать сходный результат миллион раз к ряду... на сей случай есть функции по копированию/перемещению чего угодно в адресном пространстве программы.
Вообще разговор, на эту тему очень сильно тянет тухлятиной.
Последний раз редактировалось Approximator 08.08.2004 (Вс) 3:58, всего редактировалось 1 раз.
С уважением, Approximator.

Approximator
Постоялец
Постоялец
 
Сообщения: 572
Зарегистрирован: 26.06.2004 (Сб) 3:10

Re: Упс ... начали за здравие ... а кончили то как 8(

Сообщение Approximator » 08.08.2004 (Вс) 3:42

xenomorph писал(а):Так как насчёт enable_debug_privileges + open process + read_mem ?...

а что, по содержанию топика всё ещё не понятно, что из VB всё это реализуемо? Надоело повторяться.
Так кто-то напишет просмотрщик РАМ на VB?

RAM вообще? Такой целью не задавались, но проблемы не вижу. Скоро начну материться... После компиляции все проги равнозначны по своим возможнотям (если они учтены разработчиками :) этих прог). VB-компиляты - полноценные программы. В чём проблема? Пиши, блин (скоро, точно буду материться), ActiveX dll со всем, что тебе треба делать и обыкновенный exe, суть exe должна будет сводиться к тому, чтобы "пропатчить" какую-нибудь системную библу, чтобы она грузила функциональные сегменты из твоей ActiveX dll, как свои... далее обращайся к этим функциям из любой своей проги... думаю, что не имеет смысла говорить, что исходная ActiveX могла бы быть написана и на VB... Ещё проблемы есть?
С уважением, Approximator.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.08.2004 (Вс) 9:45

Как-то все, погрязнув во флейме, не заметили моего сообщения по делу:
tyomitch писал(а):
xenomorph писал(а):Так кто-то напишет просмотрщик РАМ на VB?

А что надо-то? Выше в топике хотели текст из чужого лейбла читать, а сейчас что? Отладчик на VB пишем? :-)

Или может, это: http://www.freevbcode.com/ShowCode.asp?ID=4115
От самого Оловянникова! B-)

Зачем тут ActiveX DLL-то?

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 08.08.2004 (Вс) 10:41

Oxygen,
Сударыня, полностью согласен по всем пунктам.
Вы удовлетворены?.

>ASM есть там, где он тебе нужен. Если ты действительно умеешь программить, то и использовать ASM в среде VB для тебя - разрешимая задача. А если сам по себе ASM для тебя это исключительно какие-то конкретные ASM-компиляторы, то - иди учись и не порть остальным людям настроение.
- Непроходимая тупость.

>Очень не хочется тебя обижать. У VB удачно реализованы многие интерфейсные "штучки-дрючки". Приячём я не говорю о выскоуровневом интерфейсе, я говорю о кодовом решении.
- Какой ты добренький однако. А всякие интерфейсные "штучки-дрючки" реализованы в VB просто ужасно.

>Напоминаешь мне одного двоечника, который брыкался учиться программировать на паскале... ему тоже с ходу нужен был ASM, а х... толку? Ведь вопрос иключительно в алгоритмах. Особенности языка почти всегда можно учесть.
- Общение с двоечниками никогда не давало положительных результатов. Советую тебе впредь так больше не поступать.

>Я заметил, что ты ниже всех обвинял в шаблонных ответах. Но от тебя я кроме шаблонной бредятины, которую ты здесь написал, безусловно, не подумав хорошо я не заметил. Прости за резкость - хочу тебя взбодрить.
- Ну извини за правду. А препод из тебя и вправду хреновый. Я это заметил.

>Компилировать пробовал? ...
- Полный бред.

>Дык, ты бы попробовал использовать голову. Обычно - помогает. Одно дело, если тебе нужно ЕДИНОЖДЫ вывести: ...
- Если твоей головой забивать гвозди, то точность попадания увеличится на 0.0000000001. :)

А вообще, это было адресовано не GSerg и Aproximator (тебе уже ничего не объяснить - слишком уж у тебя мозги застоялись), а людям, зациклившемся на VB. Нужно идти дальше. В мире ещё столько интересного.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.08.2004 (Вс) 11:21

BP писал(а): А вообще, это было адресовано не GSerg и Aproximator (тебе уже ничего не объяснить - слишком уж у тебя мозги застоялись), а людям, зациклившемся на VB. Нужно идти дальше. В мире ещё столько интересного.

"Не лучше ль на себя, кума, оборотиться?" (с) Крылов.
Именно ты говорил, что тебя, бедного, насильно выучили Бейсику, и ты теперь страдаешь от необходимости на нём писать.
Я заявлял, что VB - замечательный, удобный и приятный в использовании язык. Я на нём не зациклен и легко перехожу на другие языки, когда мне того хочется.

В общем, "Поздравляю, Шарик, ты балбес." (с) Успенский.
Такое уже не лечится. Иди читай журнал Хакер, там все такие как ты.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.08.2004 (Вс) 11:54

tyomitch писал(а):Я заявлял, что VB - замечательный, удобный и приятный в использовании язык. Я на нём не зациклен и легко перехожу на другие языки, когда мне того хочется.


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

DmitriyIT
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 01.08.2004 (Вс) 13:16

Сообщение DmitriyIT » 08.08.2004 (Вс) 15:59

Насчет скорости: на
http://www.optim.ru/cs/2001/3/compar/compar.asp
проведено сравнение ряда компиляторов C++, Delphi, VB. Все с открытыми исходниками - можно скачать и самому проверить. По результатам выясняется, что простой VB вовсе не "полный тормоз", как его называют, а низкая скорость у него вовсе не в "пустых циклах". Действительный недостаток - слабость классового программирования и наследования, а вот по работе со строками VB 6 превосходит Delphi на современных машинах! А VB.NET вообще практически в одном ряду с C++ и явно быстрее Delphi и по классам, и по float-операциям, и по строкам, отставая(и то немного) лишь в обработке памяти.
И вообще - VB - язык быстрой сборки и визуальной разработки программных пакетов. Поэтому для своих программ математику я пишу на Borland C++ Builder и компилирую Intel C++ Compiler, а оболочку делаю на VB 6 или VB.NET.

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 08.08.2004 (Вс) 18:13

tyomitch,
Упрямство - первый признак тупости. Это к тебе конкретно относится.
Ты просто не хочешь признать очевидного. VB - ограниченный и тормознутый язык. Это заставляет меня сомневаться в твоих умнственных способностях. А те, кто ловит на словах, по моему вообще не способны творчески мыслить.
Тебя никто не заставляет выбрасывать свои игрушки. Просто как то странно это выглядит. Взрослый человек играется в песочнице.
Возьми к примеру любое издание или статью по программированию не связанное конкретно с VB. О нём там вообще никогда не упоминается, а если упоминается, то в скользь и то в основном интерфейс. И это всё стараниями Микрософт, вся вина которой состоит лишь в том, что она слепо следовала традиции что БЕЙСИК - язык для начинающих. Именно по этому она так сильно ограничила его возможности (сколь бы вы с пеной у рта не доказывали обратное, факт остаётся фактом). Начинающим не нужен доступ к процессору и памяти.
В итоге получился тренажёр со своей искуственной средой - виртуальной машиной. Программа на VB независима от операционной системы. У неё есть своя система - виртуальная машина. И все ограничения зашиты именно в ней. Зашиты искуственно.

В результате оказалось что программист, достаточно освоивший VB уже не может продолжить обучение, не выучив другого языка программирования, в котором не стоят столь жёсткие ограничения по возможностям. Он может продолжить работать на VB, но в этом случае его знания так и останутся на уровне программистского детского сада.
Мне не нравятся ограниченность и тормознутость VB только из за его обучающей природы. Это тренажёр. Серьёзной программы на нём не напишешь. А хотелось бы полноценный язык программирования, не уступающий другим. Почему не может быть нормального компилятора языка с синтаксисом БЕЙСИК? Потому что Микрософт уже давно всё распределила и каждому языку определила свою нишу.

Казалось бы с появлением .NET VB приравняли к другим языкам. Но это опять же кость. Теперь все .NET языки - это один большой VB. Это 100% высокоуровневые языки, неспособные работать вне своей среды .NET FW или выйти за её рамки. О каком творчестве вообще может идти речь?

Пред.След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 60

    TopList  
cron