!!! Только у нас на форуме !!! | |
Спектакли от дяди Пчёлки
для просмотра необходима регистрация |
Научите программированию
#1
Posted 14 Feb 2007 - 23:19
#2
Posted 15 Feb 2007 - 00:00
Однако исторически сложилась путаница и неразличие понятий:
программист, опытный пользователь, сисадмин.
Т.е. например для создания русификатора - не нужно быть программистом. А сисадмину не всегда нравится, что его называют компьютерщиком или программистом.
Edited by MetroidZ, 15 Feb 2007 - 00:05.
#3
Posted 15 Feb 2007 - 10:51
Иван, опыт программирования есть?
#4
Posted 15 Feb 2007 - 13:03
В принципе... плагин можно считать макросом?
#5
Posted 15 Feb 2007 - 13:47
Плагин, например, может использовать макроязык VB for application.
Edited by MetroidZ, 15 Feb 2007 - 13:48.
#6
Posted 15 Feb 2007 - 18:05
Да я не что чайник, я полный самомовар в этом, очень хочется освоить хотябы начальный уровень.Иван, опыт программирования есть?
#7
Posted 16 Feb 2007 - 12:24
В принципе, считаю что нет. Моё мнение:В принципе... плагин можно считать макросом?
Плагин - подключаемая библиотека, скомпилированная в машинный код, которая загружается родительским приложением, из которого затем производится вызов каких-либо методов. Внутренние возможности ограничены способностями языка и платформы. Ну, и конечно же, предоставлением родительской программой средств взаимодействия.
Макрос (он же макропрограмма) - это текст программы, интерпретируемый родительским приложением или сторонним интерпретатором. Возможности ограничены способностями интерпретатора, и само собой, средствами взаимодействия с родительской программой. В случае интерпретации текста макроса встроенным интерпретатором, получаем максимум взаимодействия. В теории. При этом, как правило, хромает сам интерпретатор.
Если по-русски, то все отличия сводятся к отличиям работы интерпретатора и маш.кода.
#8
Posted 18 Feb 2007 - 04:16
Поскольку макрос использует УЖЕ РЕАЛИЗОВАННЫЕ в программе функции, то именно ими он и ограничен. В некоторых случаях это функциональность может быть расширена за счет плагинов (PhotoShop например).
Плагин же ограничен лишь (как Вы сказали) предоставлением родительской программой средств взаимодействия (правильнее сказать - возможностями интерфейса хоста) и фантазией автора плагина. Ну прямые руки естественно приветствуются
На счет ограничений вызванных способностями языка и платформы не совсем понял. Это чем же может Windows ограничить меня как разработчика плагина? Возможности языка так же не являются ограничением, сегодня плагины хоть на VBA пиши, лишь бы интерфейс с хостом был.
Соответственно у плагина практически ВСЕГДА возможности больше, чем у макроса. Да и работает он быстрее по стравнению с реал-таймовой интерпретацией макроса.
#9
Posted 18 Feb 2007 - 05:03
#10
Posted 19 Feb 2007 - 14:45
Язык языку всё-таки рознь, написать можно одну и ту же вещь в разных средах, но работать они могут с разной эффективностью. Хотя, твоя правда - нелинейность рук программиста накладывает большие ограничения, чем среда разработки.На счет ограничений вызванных способностями языка и платформы не совсем понял. Это чем же может Windows ограничить меня как разработчика плагина? Возможности языка так же не являются ограничением, сегодня плагины хоть на VBA пиши, лишь бы интерфейс с хостом был.
Про платформу - скажем, какие-то вещи пройдут при разработке плагина под windows, но когда пишешь что-нибудь для Linux, уже не все фокусы могут пройти. И наоборот.
#11
Posted 20 Feb 2007 - 02:42
А можно по-подробнее? Так, для общего развития.
Под форточкой давно сижу, до нее ДОС программил, еще раньше - RT11SJ
А вот под *nix'ы как-то не доводилось...
#12
Posted 20 Feb 2007 - 08:51
Пока только в теории Взять хотя бы использование графики (ну вдруг я не захочу использовать стандартные контролы, надо прорисовать свой), или вдруг чего-нибудь с реестром завязано. Да и WinAPI сменится на другой API. Но это всё отличия ближе к системному уровню, большинство функций должны остаться одинаковыми, по крайней мере для C, для того же Kylix.А можно по-подробнее? Так, для общего развития.
На практике я похвастаться примерами пока не могу
PS: Даже с форточками - и то небольшие, но неприятные отличия попадаются.
Edited by DiSel, 20 Feb 2007 - 09:04.
#13
Posted 20 Feb 2007 - 09:43
Хоть меня по плечу похлопайте.
Молодец, мол, Юрец...
тему поднял
(Это я к тому, что нифига из вышеизложенного не понял...)
#14
Posted 20 Feb 2007 - 16:44
Ну, отличия-то хоть понятны на пальцах?Хоть меня по плечу похлопайте.
Молодец, мол, Юрец...
тему поднял
Если да - то вопрос можно прикрыть, а то мы с m00nk-ом счас устроим дебаты
Про саму тему - это всё равно что "научите меня кино снимать", задача широкая.
#15
Posted 22 Feb 2007 - 07:49
Давайте так:
1. Наиболее комфортный язык программирования? В видоесреде....
2. Наиболее комфортный язык программирования? Для чайника....
Только чур, не описывать различия... верим на слово .
#16
Posted 22 Feb 2007 - 09:54
Как однажды сказал Дейкстра: "Лучший язык программирорвания - тот, который лучше всего знаешь".Ни фига не понятны....
Давайте так:
1. Наиболее комфортный язык программирования? В видоесреде....
2. Наиболее комфортный язык программирования? Для чайника....
Только чур, не описывать различия... верим на слово .
Написать рабочий кусок можно в чём угодно, хоть в Visual Basic for Applications, лишь бы ты мог в нём правильно выразить то что ты хошь получить.
Другое дело, что тебе придётся получить как для чайника, или как для видеосреды. Если нет необходимости уделять внимание прорисовке оконных объектов, то следует выбирать среды т.н. RAD - Rapid Application Development, быстрая разработка приложений. Сюда можно отнести продукты Borland: Delphi, C++ Builder или MS VBA. Окна, кнопки, другие стандартные контролы добавляются одним щелчком, визульное проектирование формы. Думаю, для чайника это будет самым подходящим вариантом. Для видеосреды, если имеется в виду написание плагина, он тоже подойдёт - знать бы интерфейс взаимодействия. Но учитывая, что большинство программ пишутся на MS Visual C++, соответственно SDK и документация для написания плагинов идут на нём любимом, то удобнее будет его-то как раз и использовать.
Вообще не вредно изучить хотя бы синтаксис языка C/С++, а ещё объектный C++, поскольку Java, JavaScript и многие другие скриптовые интерпретаторы используют Си-подобные конструкции.
То же самое, но по-русски: Delphi из первого поста изучить легко, написать чего-нибудь на нём тоже несложно.
#17
Posted 22 Feb 2007 - 13:21
#18
Posted 22 Feb 2007 - 14:51
Software Development Kit - дословно, набор для разработки программья.Что такое SDK?
В нём приводятся заголовки интерфейса для взаимодействия с родительской программой (чтобы знать, чего вызывать), а ещё обычно вкладывают какие-нибудь примеры плагинов. Чтобы уже не с нуля начинать написание собственных.
#19
Posted 22 Feb 2007 - 15:16
Что есть "родитель" и тому подобное... хотя с трудом.
задача:
надо чтобы комп при нажатии клавиши F1 выдал текстовый документ с приветствием: "Юрец, ты гений!"
Делаем?
#20
Posted 22 Feb 2007 - 15:20
Будет интересно посмотреть на результаты
А если серьезно, то кроме изучения языка ОЧЕНЬ желательно еще научиться правильному проектированию приложений и алгоритмов. Например, ту же сортировку можно выполнить двумя десятками разных способов, но первый будет медленным, второй будет жрать слишком много памяти, третий и быстрый и маленький, но подходит только для специфических типов данных и т.д. Задача программиста - не просто описать алгоритм действий командами языка, а НАЙТИ (или создать) оптимальный набор алгоритмов для решения поставленной задачи. И тут уж одним знанием языка не обойдешься.
Я не стараюсь запугать или отговорить, просто хочу сказать, что для программиста знание языка программирования - не главное (парадокс?), язык можно использовать любой, главное - ОПЫТ в составлении алгоритмов и проектировании.
#21
Posted 22 Feb 2007 - 16:18
#22
Posted 22 Feb 2007 - 19:47
надо чтобы комп при нажатии клавиши F1 выдал текстовый документ с приветствием: "Юрец, ты гений!"
Делаем?
Не совсем корректная задача. И вот почему: если запущено какое-либо приложение, то оно как правило программирует клавишу F1 на вызов своей справки. Не думаю, что пользователю будет удобно при нажатии на эту клавишу видеть вместо окна помощи приветствие Юрцу.
Давай лучше что-нить попроще. Например запускаем программу, она выкидывает окно "Привет Юрец!", жмем в нем "ОК" - она выкидывает "Пока, Юрец!". Пойдет?
На C это будет выглядеть примерно так (платформа Win32):
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Привет, Юрец!", "Привет", MB_OK);
MessageBox(NULL, "Пока, Юрец!", "Пока", MB_OK);
}
#23
Posted 22 Feb 2007 - 20:28
"Человек, стремящийся стать программистом и только тщательно изучающий какой-либо конкретный язык программирования, подобен обучающемуся на конструктора автомобилей и изучающего только каталог деталей конкретной машины"
Немного утрировано (хорошо знать язык тоже необходимо), но суть (IMHO) верна.
#24
Posted 26 Feb 2007 - 10:04
Абсолютно поддерживаю!Задача программиста - не просто описать алгоритм действий командами языка, а НАЙТИ (или создать) оптимальный набор алгоритмов для решения поставленной задачи. И тут уж одним знанием языка не обойдешься.
#25
Posted 26 Feb 2007 - 15:57
Эт что, командная строка? . . . как запустить? куда встроить#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Привет, Юрец!", "Привет", MB_OK);
MessageBox(NULL, "Пока, Юрец!", "Пока", MB_OK);
}
#26
Posted 26 Feb 2007 - 16:52
#27
Posted 26 Feb 2007 - 17:20
Ага, блин, попалисьЗапихиваешь ее в компилятор этого языка
Значит, что б написать программу, надо иметь программу!!!
А если серьёзно, я могу накропать только что-нибудь в блокноте...
То есть теги... это, в принципе, что и было представлено?
В догонку...
Компилятор это - .... ?
#28
Posted 26 Feb 2007 - 18:03
Программа, переводящая твою программу, написанную символьным языком (С, Pascal, Fortran ....), в машинные коды - инструкции процессора.
Еще требуется т.н. процесс линкования(уже забыл русский синоним, по англ. - Link) - грубо говоря, построение исполняемого модуля (*.exe), подключение необходимых системных библиотек и т.п.. Обычно в распространенных срЕдах разработки (Borland, MSVS ...) эти процессы одновременно выполняются (если не попросишь только скомпилировать свою программу в *.dll, например).
#29
Posted 28 Feb 2007 - 04:48
Тогда только командный процессор cmd.exe Но это тоже программа.
процесс линкования(уже забыл русский синоним, по англ. - Link)
по-русски - компоновка.
эти процессы одновременно выполняются (если не попросишь только скомпилировать свою программу в *.dll, например).
После "чистой" компиляции получаются т.н. объектные файлы (расширение - OBJ). Компоновка происходит как при сборке EXE-файлов, так и при сборке файлов любого другого "конечного" формата (DLL, AX, VDX и т.д.).
А вообще-то, я думаю, что начинать изучать программирование лучше с какого-нить предельно простого языка типа PHP. А уже освоившись с ним можно переходить на более "продвинутые". Хотя... все зависит от задач, которые предстоит решать Вашим программам....
#30
Posted 01 Mar 2007 - 03:22
mozhno i osobo ne imetj (hotja dazhe draiver klaviatury - eto programma, ne govorja o BIOS sistemy ...)
poetomu nachatj luchshe v skriptovoj srede (interpretatory : preimushestvo - ispolnjajet srazu isodnij tekst) kotoraja prisutstvujet graficheskih obolochkah (i windows i *nix...) ... naprimer javascript- budut neobhodimy programmy : notepad, i prakticheski luboj browser.
delajesh fail test.html
<script type="text/javascript"> // zdesj budet tvoja programka </script>kak primer programki mozhesh ispoljzovatj:
<script type="text/javascript"> a=prompt('pervaja cifra','0'); b=prompt('vtoraja cifra','0'); window.alert('summa '+(parseInt(a)+parseInt(b))); </script>
dalee mozhesh ispoljzovaj dlja samoobrazovanija okumentaciju po javascripti po objekatm browsera /dannyje ssilki na implementaciju mozilla - mozhet otlichatsja ot opery/IE/... /.
no srazu skazhu - starajsja ne chitatj perevedennuju lteraturu - a toljko english - poskoljku v tradicionnom programmirovanii eto pervichnij jazyk... estj otstuplenija, no ih ne mnogo (p-code, i simvoljnije jazyki ne berem v uchet)
eshe luchshe nachinatj s principov programmirovanija- raspishi algoritm po kotoromu ty sdelajesh sebe chaj/kofe ... v melkih detaljah ...
programmirovanije vkljuchajet v sebja tak zhe otladku:
po predydushemu napisannomu toboj algoritmu - sdelaj sebe chaj - imenno tak kak napisano, bez otstuplenij vlevo ili vpravo - esli skazano vzjatj v pravuju ruku chajnik - to dazhe i ne dumaj ego vzjatj v levuju ... - prichem vzjatj - eto uzhe otdeljnij algoritm nado raspisatj ... vsje oshibki/ne hvatajushije dejstvija fiksiruj ... v itoge budesh imetj rabotajushij algoritm...
#31
Posted 01 Mar 2007 - 13:23
<script language="javascript"> var a=0,b=0; a=prompt('pervaja cifra','0'); b=prompt('vtoraja cifra','0'); window.alert('summa '+(parseInt(a)+parseInt(b))); </script>
#32
Posted 01 Mar 2007 - 13:29
v dannom sluchaje iniciirovanije peremennih izlishne - poskoljku ono v ljubom sluchaje iniciirujetsja v prompt ...
mozhno konechno pered a= i pered b= postavitj "var "
libo "var a,b;" bez prisvojenija - objavlenije peremennyh.
#33
Posted 01 Mar 2007 - 13:39
<script type="text/javascript"> или <script language="javascript"> ???window.alert('summa '+parseInt(a)+parseInt()
или
window.alert('summa '+(parseInt(a)+parseInt());
#34
Posted 01 Mar 2007 - 16:51
dlja neznajushih :
http://www.w3.org/TR/REC-html40-971218/interact/scripts.html
+<!ELEMENT SCRIPT - - %Script; -- script statements -->
<!ATTLIST SCRIPT
charset %Charset; #IMPLIED -- char encoding of linked resource --
type %ContentType; #REQUIRED -- content type of script language --
language CDATA #IMPLIED -- predefined script language name --
src %URI; #IMPLIED -- URI for an external script --
defer (defer) #IMPLIED -- UA may defer execution of script --
>
Attribute definitions
src = uri [CT]
This attribute specifies the location of an external script.
type = content-type [CI]
This attribute specifies the scripting language of the element's contents and overrides the default scripting language. The scripting language is specified as a content type (e.g., "text/javascript"). Authors must supply a value for this attribute. There is no default value for this attribute.
language = cdata [CI]
Deprecated.This attribute specifies the scripting language of the contents of this element. Its value is an identifier for the language, but since these identifiers are not standard, this attribute has been deprecated in favor of type.
defer [CI]
When set, this boolean attribute provides a hint to the user agent that the script is not going to generate any document content (e.g., no "document.write" in javascript) and thus, the user agent can continue parsing and rendering.
naschet skobok - dejstviteljno - luchshe postavitj ... opechatalsja ... v javascript pervichnyj objekt tekst ...
#35
Posted 01 Mar 2007 - 19:52
Можно расчитывать на Вашу помощь?
Программированием не занимался лет 10-13-ть, т.е. за последние годы не скомпилил ни одну прогу. Программировал на С, потом чуть-чуть на С++, потом сменил специальность и на этом все закончилось. написание скриптов и взлом прог - не всчет.
Несколько раз пытался дома установить новый программный софт, но так и не смог разобраться с установками и настройками так и забросил.
Цель - написать плагин под After Effect
В связи с этим меня интересуют самые азы.
1. Установка скажем С++ и настройка его, чтоб я смог скомпилить хотябы экзешник выводящий "Hello Word".
2. Как правильно подключить скаченное SDK.
3. Как правильно скомпилить dll-ку под плагин.
для отправной точки есть статья с примером написания плагина под АЕ
_http://www.mactech.com/articles/mactech/Vol.15/15.09/AfterEffectsPlugins/
Стоит ли браться за это или не стОит? Один я точно не справлюсь.
#36
Posted 01 Mar 2007 - 20:41
Как правило проблем с этим не бывает. Инсталлятор сам все установит и настроит. Рекомендую в качестве рабочей среды использовать компилятор от Мелкософта - неплохая оптимизация кода. Также можешь использовать C++ Builder. Это - то же, что и Delphi, только в осносе не паскаль, а С++
2. Как правильно подключить скаченное SDK.
Прочесть документацию
С каждым SDK идет описание его использования и подключения. Обычно присутствуют и примеры готовых модулей в виде проектом под MSVC, что бывает очень полезно.
Как правильно скомпилить dll-ку под плагин.
Опять же - читать документацию. Все плагины - это обычные DLL просто с каким-нить уникальным расширением.
Стоит ли браться за это или не стОит?
А можно поконкретнее узнать, что именно хочешь сделать?
#37
Posted 01 Mar 2007 - 22:55
#38
Posted 01 Mar 2007 - 23:22
Для такого были сделаны програмы типа:написать скрипт, при запуске которого "нажималась" просто одна клавиша клавиатуры?
Sign 0f Misery
Программа компилирует скрипт в исполняемый EXE файл, работающий на любом компе.
Скрин окна программы:
Sign_0f_Misery.png 28.71K 6 Number of downloads
#39
Posted 01 Mar 2007 - 23:34
#40
Posted 02 Mar 2007 - 00:12
А смысл??? Не проще ли самому эту кнопку нажать? Честно-говоря, я не совсем понимаю практическое применение такого скрипта.
Если нужно по какому-то событию выполнить какие-то действия, то для этого (как уже сказал MetroidZ) существуют спец-программы. Я рекомендую nnCron, где-то в этом форуме я уже кидал ссылку и описание возможностей, используйте поиск.
По-поводу скриптов. Они выполняются в определенной среде (например в Vegas'е), соответственно только в этой среде они и будут работать. Язык скриптов также полностью зависит от среды, т.е. отсутствует переносимость скриптов. Например скрипты от Вегаса будут работать только в Вегасе. Иногда бывает, что скрипты работают только в той версии, под которую они написаны, т.е. отсутствует переносимость даже между версиями (3D Max).
По этому нужно более детальное описание задачи, тогда смогу (наверное ) дать более точный ответ.
Если же писать программу на С++, то с нажатием кнопок никаких проблем, но в этом случае дейсвительно получится EXE-шник.
#41
Posted 02 Mar 2007 - 00:27
#42
Posted 02 Mar 2007 - 03:23
#43
Posted 02 Mar 2007 - 11:57
Также можешь использовать C++ Builder.
Я в свое время использовал Borland C++ Builder 1-й версии и при открытии сорцев Мелкософта компилятор выдавал ошибки, приходилось подправлять все в ручную, сейчас эти проблемы остались, или надо сразу устанавливать MSVC и не парится, менюшки и др интерфейс в классическом плагине в принципе не нужен Builder.
читал и документацию к SDK, но без установленной среды программирования и не возможности пощюпать все своими руками, это чтение не принесло удовлетворение.
А можно поконкретнее узнать, что именно хочешь сделать?
Плагин для АЕ который бы создал маску из анимированного пути слоя. На данный момент часто при композинге мы делаем путь слоя по маске(кривой), хотелось бы сделать обратную задачу, из оттреканного пути сделать маску-путь. в АЕ70 в скриптовом варианте эта функция не реализована, нет доступа к массиву вертекстов(тангент). Может эта функция и появится в АЕ8, но Адобы уж сильно тормознутые в плане новшеств.
Задача не сложная считать массив координат ключевых точек пути и их вертекстов и на основе этого создать маску.
типа такого
var tempVerts=[]; var tempInTans=[]; var tempOutTans=[]; // бла бла бла, в цикле присвоили координаты массивам var tempMask=new Shape(); tempMask.vertices = tempVerts; tempMask.inTangents = tempInTans; tempMask.outTangents = tempOutTans; tempMask.closed=false; curMask.setValue(tempMask);
#44
Posted 02 Mar 2007 - 17:48
Т.е. нужно вынести эту функцию на панель? А разве в Вегасе нет стандартной настройки панели?нужно сделать кнопку "S" в Вегасе, которая режет трек. Проще говоря использовать для этого мышь из програмной среды Вегаса.
#45
Posted 02 Mar 2007 - 17:52
Последний Билдер, которым я пользовался (версии 5) позволял открывать проекты VC++5 и вроде шестого. Там даже какие-то файлы-библиотеки для совместимости в пакете были. Точнее не скажу - меня подобные выкрутасы не интересовали.
#46
Posted 02 Mar 2007 - 20:15
Жаль.Языка его скриптов не знаю, поэтому к сожалению тут ничем помочь не могу.
Да панель тут ни при чём ... скрипта такого нет. А резать в Вегасе можно только клавишей "S" ... дублирующей функции для грызуна (как в других монтажках) нет. Утилиты для мышки не интересуют, важно именно из програмной среды Вегаса, точнее с панели инструментов ...А разве в Вегасе нет стандартной настройки панели?
#47
Posted 02 Mar 2007 - 21:53
Из маски в путь через Ctrl+C / Ctrl+V делается. А обратная операция разве не проходит?
резать в Вегасе можно только клавишей "S"
Тебе нужно разредзание в срипте применить? А макросы в Вегасе делать можно?
#48
Posted 02 Mar 2007 - 22:01
#49
Posted 02 Mar 2007 - 22:28
02.03.07
плагин для Adobe After Effects 6.5
-----
Рассматриваю возможность заказа написания плагина для Adobe After Effects 6.5.
Стопроцентной гарантии того, что закажу, нет, но хочу серьезно рассмотреть такой
вариант. Насколько я понимаю, плагины пишутся на С++ с помощью Adobe After Effects
6.5 SDK, который можно бесплатно скачать с сайта производителя.
Суть плагина . запись различных параметров графического видео в текстовый файл
(количество фреймов, координаты на плоскости и т.д. и т.п.) Та информация, которая
появляется, если выделить и скопировать точки на слое, а затем вставить в текстовый
файл, плюс расчеты на ее основе.
Прошу указать предполагаемые сроки, пожелания по оплате.
#50
Posted 03 Mar 2007 - 21:54
Забавно читать эту ветку Ну такое ощущение будто в детский сад попал.Программа на языке С++. Запихиваешь ее в компилятор этого языка, компилируешь и получаешь EXE-файл, который и выполняет поставленную задачу.
Извините коллеги, никого не хочу обидеть.
2m00nk
Помоему фрагмент кода говорит о чистом С (ни одного класса нет)
Сделать это очень просто.Скажу прямо ... нужно сделать кнопку "S" в Вегасе, которая режет трек. Проще говоря использовать для этого мышь из програмной среды Вегаса. Для меня это имеет смысл ...
Вот пример для калькулятора. Текст сохраняешь в файле .vbs и вместо "Calculator"
нужно поставить заголовок твоего окна (для русской винды "Калькулятор")
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "calc"
WScript.Sleep 100
WshShell.AppActivate "Calculator"
WScript.Sleep 100
WshShell.SendKeys "1{+}"
WScript.Sleep 500
WshShell.SendKeys "2"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 500
WshShell.SendKeys "*3"
WScript.Sleep 500
WshShell.SendKeys "~"
WScript.Sleep 2500
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users