Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Написать скрипты C++ ? |
Автор: denes 9.7.2012, 23:24 |
Скажите как написать скрипты на C++ или скажем на AngelScript ? Есть разница между языками программирования и языками скриптов ? |
Автор: volatile 10.7.2012, 00:52 |
гуглить по теме интерпретаторы / компиляторы. после прочтения нагугленного (хотябы поверхностно), сформулировать вопрос заново. |
Автор: borisbn 10.7.2012, 08:54 |
Нет. Языки скриптов являются языками программирования. |
Автор: bsa 16.7.2012, 23:23 |
borisbn, вообще-то, разница есть: не все ЯП, являются "языками скриптов" (т.е. интерпретируемыми). А вот все "языки скриптов" являются ЯП. Но это просто занудное придирание к словам. |
Автор: k0rvin 17.7.2012, 12:26 | ||
Это все несколько условно. Кажется, где-то был интерпретатор C (http://code.google.com/p/picoc/ например) и даже частично http://en.wikipedia.org/wiki/Ch_%28computer_programming%29. Но, конечно, некоторые языки легче интерпретировать, а некоторые -- компилировать. |
Автор: denes 17.7.2012, 14:39 |
некоторые языки легче интерпретировать, а некоторые -- компилировать. А как понять какие легче ? ЯП-это что ? Ну как я понял вас можно смела писать скрипты на C++ и без потери качества ? |
Автор: boostcoder 17.7.2012, 14:46 |
bsa, k0rvin, зачем вы отписались? сейчас опять начнется "врубание дурочки" ![]() |
Автор: k0rvin 17.7.2012, 16:19 | ||
А, блин, не обратил внимание, что это denes |
Автор: k0rvin 18.7.2012, 14:23 | ||
А Common Lisp тогда какой язык? |
Автор: boostcoder 18.7.2012, 14:32 |
отвечать на всякий бред? кто, в здравом уме, станет отвечать на бред? ![]() |
Автор: bsa 18.7.2012, 15:18 |
просто есть мнение, человеку в жизни не повезло. вот он пытается что-то освоить, но старое невезение сильно мешает. Если ты считаешь это бредом, то не отвечай. |
Автор: denes 23.7.2012, 13:53 |
bsa, Спасибо типерь всё стало понятно ! Разные компиляторы ! Добавлено через 1 минуту и 23 секунды Вазможно дурацкий вапрос но всёже как совмещяют скрипты с программами на языке С++ ? |
Автор: xvr 24.7.2012, 10:29 | ||
Встраивают интерпретаторы этих самых скриптовых языков в 'программы на С++' |
Автор: bsa 24.7.2012, 13:29 |
например, библиотека boost::python. |
Автор: denes 25.7.2012, 23:23 |
Встраивают интерпретаторы подробнее можно ? А лучще покажите на премере ? |
Автор: bsa 25.7.2012, 23:38 |
http://lmgtfy.com/?q=boost::python |
Автор: denes 27.7.2012, 19:40 |
Нашол вроде скрипт на C++ / Сетевые технологии / Сеть Cgi скрипт на C++. Сейчас научимся создавать cgi скрипты на С++. Для этого нам понадобится Web сервер, желательно Apache ну и конечно VC++. Для начала создадим домен, в котором будем тестировать скрипт, лезь в директорию где установлен Apache, у меня это C:\WebServers, дальше в папке home создай папку с названием test.com. В test.com сделай еще две папки, www и cgi, не забудь создать текстовый файл error.log. В папку www помести файл index.html, примерно такого содержания: <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <title>script</title> </head> <body bgcolor="black" text="#FF9933" link="blue" vlink="purple" alink="red"> <form action="http://www.test.com/cgi/CGIScriptElf.cgi" method=GET>Enter: <input type=text maxlength=256 name=comment> <input type=submit value=Go> </form> </body> </html> Создавай новый проект Win32 Console Application и пиши следущее: #include <windows.h> #include <iostream> using namespace std; int main() { char szName[1024]; cout<<"Content-Type: text/html\n\n"; cout<<"<HTML><HEAD><TITLE>Lazy_elf</TITLE></HEAD>\n"; cout<<"<body bgcolor='black' text='#F2F2F2' link='#FF9900' vlink='#FF9900' alink='#FF9900'>\n"; cout<<"<meta http-equiv='content-type' content='text/html; charset=windows-1251'>\n"; cout<<"<p style='line-height:100%; margin-left:10%;' align='center'><span style='font-size:14pt;'>Cgi-скрипт на С++.</span></p>\n"; cout<<"<p style='line-height:100%; margin-left:10%;'><a href=http://www.pagel.by.ru>www.pagel.by.ru</a> Code by Lazy_elf</p>\n"; char comment[256]; if(GetEnvironmentVariable("QUERY_STRING",comment,256)) {cout<<"<p style='line-height:100%; margin-left:10%;'>Вы ввели: "<<comment<<"</p>\n";} //////////////////////////////////////////////////////////////////////////////////////////////////////// cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#FF9933'>Данные о клиенте:</font></p>\n"; if(GetEnvironmentVariable("HTTP_USER_AGENT",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_USER_AGENT: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("HTTP_ACCEPT",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_ACCEPT: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("HTTP_REFERER",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_REFERER: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("HTTP_ACCEPT_ENCODING",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_ACCEPT_ENCODING: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("HTTP_ACCEPT_LANGUAGE",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_ACCEPT_LANGUAGE: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("HTTP_IF_MODIFIED_SINCE",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_IF_MODIFIED_SINCE: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("HTTP_FROM",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_FROM: </font>"<<szName<<"</p>\n";} //////////////////////////////////////////////////////////////////////////////////////////////////////// szName[0] = '\0'; cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#FF9933'>Данные о сервере:</font></p>\n"; if(GetEnvironmentVariable("GATEWAY_INTERFACE",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>GATEWAY_INTERFACE: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("SERVER_NAME",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SERVER_NAME: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("SERVER_PORT",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SERVER_PORT: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("SERVER_PROTOCOL",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SERVER_PROTOCOL: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("SERVER_SOFTWARE",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SERVER_SOFTWARE: </font>"<<szName<<"</p>\n";} //////////////////////////////////////////////////////////////////////////////////////////////////////// szName[0] = '\0'; cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#FF9933'>Данные о запросе:</font></p>\n"; if(GetEnvironmentVariable("AUTH_TYPE",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>AUTH_TYPE: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("CONTENT_FILE",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>CONTENT_FILE: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("CONTENT_LENGTH",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>CONTENT_LENGTH: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("CONTENT_TYPE",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>CONTENT_TYPE: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("PATH_INFO",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>PATH_INFO: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("PATH_TRANSLATED",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>PATH_TRANSLATED: </font>"<<szName<<"</p>\n";} //хм... if(GetEnvironmentVariable("REMOTE_ADDR",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>REMOTE_ADDR: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("REMOTE_HOST",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>REMOTE_HOST: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("REQUEST_METHOD",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>REQUEST_METHOD: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("REQUEST_LINE",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>REQUEST_LINE: </font>"<<szName<<"</p>\n";} if(GetEnvironmentVariable("SCRIPT_NAME",szName,1024)) {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SCRIPT_NAME: </font>"<<szName<<"</p>\n";} cout<<"</BODY></HTML>\n"; return 0; } Компилируй, у получившейся программы измени расширение на cgi или просто в настройках линкера (Project->Settings->Link) измени Output file name и помести готовый скрипт в папку cgi. Запускай Apache, потом какой-нибудь браузер, в строке адрес напиши http://www.test.com, должно появится следующее: Введи в поле и нажми кнопку Go, появится новая страница созданная скриптом, на которой сможешь увидеть значения основных переменных. Для получения значения нам необходима API функция GetEnvironmentVariable. DWORD GetEnvironmentVariable( LPCTSTR lpName, - имя переменной; LPTSTR lpBuffer, - указатель на буфер, куда будет записано значение; DWORD nSize - размер буфера. ); На этом все, удачного веб-программирования. Добавлено через 47 секунд char szName[1024]; ??? |
Автор: bsa 27.7.2012, 22:36 |
Если бы ты не занимался глупостями, то тоже самое смог бы сделать на PHP или perl. Причем выглядело бы это значительно приличней. А ты даже код по правилам форума оформить не можешь. Зачем тебе вообще программировать? |
Автор: denes 8.9.2012, 15:07 |
Я же учусь а зачем вам тоже не нужно пусть иностранци делают напремер Японци а на кой Рассии програмисты нам только водка и тёлка всё так чтоли ? |
Автор: xvr 8.9.2012, 18:23 | ||||
Обучение предусматривает какой никакой прогресс, у вас его что-то не видно ![]() |
Автор: k0rvin 9.9.2012, 20:00 | ||||
Уж не попов ли? =) |
Автор: denes 16.3.2015, 23:28 |
Не одного путного савета |
Автор: maint 17.3.2015, 04:39 | ||
русский язык не пробовали учить? cgihtml ключевое слово, можно найти библиотеку на C |
Автор: VSB 23.3.2015, 18:27 |
2012-2015 Некропостеры) |
Автор: xvr 25.3.2015, 17:48 |
А это ТС решил еще раз поднять эту тему. Видимо думал, что за 3 года что то изменилось ![]() |
Автор: denes 22.4.2015, 13:19 |
А при чом тут cgihtml ? HTML это другое |