Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Написать скрипты C++ ?


Автор: denes 9.7.2012, 23:24
Скажите как написать скрипты на C++ или скажем на AngelScript ?

Есть разница между языками программирования и языками скриптов ?

Автор: volatile 10.7.2012, 00:52
Цитата(denes @  9.7.2012,  23:24 Найти цитируемый пост)
Есть разница между языками программирования и языками скриптов ?

гуглить по теме интерпретаторы / компиляторы.
после прочтения нагугленного (хотябы поверхностно), сформулировать вопрос заново.


Автор: borisbn 10.7.2012, 08:54
Цитата(denes @  9.7.2012,  23:24 Найти цитируемый пост)
Есть разница между языками программирования и языками скриптов ?

Нет. Языки скриптов являются языками программирования.

Автор: bsa 16.7.2012, 23:23
borisbn, вообще-то, разница есть: не все ЯП, являются "языками скриптов" (т.е. интерпретируемыми). А вот все "языки скриптов" являются ЯП. Но это просто занудное придирание к словам.

Автор: k0rvin 17.7.2012, 12:26
Цитата(bsa @ 16.7.2012,  23:23)
borisbn, вообще-то, разница есть: не все ЯП, являются "языками скриптов" (т.е. интерпретируемыми). А вот все "языки скриптов" являются ЯП. Но это просто занудное придирание к словам.

Это все несколько условно.

Кажется, где-то был интерпретатор 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
bsak0rvin, зачем вы отписались? сейчас опять начнется "врубание дурочки" smile 

Автор: k0rvin 17.7.2012, 16:19
Цитата(boostcoder @ 17.7.2012,  14:46)
bsak0rvin, зачем вы отписались? сейчас опять начнется "врубание дурочки" smile

А, блин, не обратил внимание, что это denes

Автор: bsa 18.7.2012, 13:53
Цитата(denes @  17.7.2012,  15:39 Найти цитируемый пост)
А как понять какие легче ?
из первых строк их документации.
Цитата(denes @  17.7.2012,  15:39 Найти цитируемый пост)
ЯП-это что ?
Язык Программирования
Цитата(denes @  17.7.2012,  15:39 Найти цитируемый пост)
Ну как я понял вас можно смела писать скрипты на C++ и без потери качества ?
Поржал.
Скриптом, обычно, называется программа, написанная на ИНТЕРПРЕТИРУЕМОМ языке (python, perl, *sh, basic, javascript, lua...). А С++ - это компилируемый (так же как и assembler, pascal, D, C#, Go...)!

Цитата(boostcoder @  17.7.2012,  15:46 Найти цитируемый пост)
bsa, k0rvin, зачем вы отписались? сейчас опять начнется "врубание дурочки"

работа такая 

Автор: k0rvin 18.7.2012, 14:23
Цитата(bsa @ 18.7.2012,  13:53)
Поржал.
Скриптом, обычно, называется программа, написанная на ИНТЕРПРЕТИРУЕМОМ языке (python, perl, *sh, basic, javascript, lua...). А С++ - это компилируемый (так же как и assembler, pascal, D, C#, Go...)!

А Common Lisp тогда какой язык?

Автор: boostcoder 18.7.2012, 14:32
Цитата(bsa @  18.7.2012,  13:53 Найти цитируемый пост)
работа такая

отвечать на всякий бред?
кто, в здравом уме, станет отвечать на бред? smile 

Автор: bsa 18.7.2012, 15:18
Цитата(boostcoder @  18.7.2012,  15:32 Найти цитируемый пост)
кто, в здравом уме, станет отвечать на бред?
просто есть мнение, человеку в жизни не повезло. вот он пытается что-то освоить, но старое невезение сильно мешает. Если ты считаешь это бредом, то не отвечай.

Автор: denes 23.7.2012, 13:53
bsa, Спасибо типерь всё стало понятно !

Разные компиляторы !

Добавлено через 1 минуту и 23 секунды
Вазможно дурацкий вапрос но всёже как совмещяют скрипты с программами на языке С++ ?

Автор: xvr 24.7.2012, 10:29
Цитата(denes @  23.7.2012,  13:53 Найти цитируемый пост)
Вазможно дурацкий вапрос но всёже как совмещяют скрипты с программами на языке С++ ?

Встраивают интерпретаторы этих самых скриптовых языков в 'программы на С++'

Автор: bsa 24.7.2012, 13:29
Цитата(denes @  23.7.2012,  14:53 Найти цитируемый пост)
Вазможно дурацкий вапрос но всёже как совмещяют скрипты с программами на языке С++ ? 
например, библиотека 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
Цитата(denes @ 8.9.2012,  15:07)
Я же учусь

Цитата

— Ну что вы, Пуаро,  — пробормотал я.  — Мне очень лестно… Вероятно, я так или иначе научился чему-то от вас…

Он отрицательно покачал головой.

— Mais поп, ce n'est pas ca. [46] Вы ничему не научились.

— Как?  — изумленно спросил я.

— Не удивляйтесь. Все правильно. Никто ни у кого не должен учиться. Каждый человек должен развивать до предела свои возможности, а не копировать кого-то другого. Я не хочу, чтобы вы стали ухудшенным Пуаро. Я хочу, чтобы вы были непревзойденным Гастингсом! Впрочем, вы и есть непревзойденный Гастингс. Вы классически, совершенно нормальны. 
Агата Кристи, Смерть лорда Эджвера (глава 14)

Обучение предусматривает какой никакой прогресс, у вас его что-то не видно  smile 

Автор: k0rvin 9.9.2012, 20:00
Цитата(denes @ 8.9.2012,  15:07)
Я же учусь а зачем вам тоже не нужно пусть иностранци делают напремер Японци а на кой Рассии програмисты нам только водка и тёлка всё так чтоли ?

Цитата

--------------------
Денис


Уж не попов ли? =)

Автор: denes 16.3.2015, 23:28
Не одного путного савета

Автор: maint 17.3.2015, 04:39
Цитата(denes @ 16.3.2015,  23:28)
Не одного путного савета

русский язык не пробовали учить?
cgihtml ключевое слово, можно найти библиотеку на C

Автор: VSB 23.3.2015, 18:27
2012-2015
Некропостеры)

Автор: xvr 25.3.2015, 17:48
Цитата(VSB @  23.3.2015,  18:27 Найти цитируемый пост)
Некропостеры) 

А это ТС решил еще раз поднять эту тему. Видимо думал, что за 3 года что то изменилось smile

Автор: denes 22.4.2015, 13:19
А при чом тут cgihtml ?

HTML это другое

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)