- Регистрация
- 11.06.2015
- Сообщения
- 252
- Реакции
- 255
- Баллы
- 63
Уважаемые коллеги. Ситуация такова: Zennoposter создает рабочие прототипы программ – достаточно сложный шаблон можно создать за 2-3 часа (у какого какой опыт). И шаблон, который показывает свою коммерческую успешность, можно перевести в промышленный код или же отдельные блоки переписать на языке программирования (ЯП). Потому что так будет быстрее и менее затратно по ресурсам. И возникает вопрос какой ЯП предпочесть?
Многие из опытных пользователей Zennoposter уже пишут на С# (си шарп) или PHP, или легко ориентируются в нескольких языках. Но базовым среди нас считается си шарп, здесь на форуме частенько советуют друг другу изучать именно си шарп, поскольку Zennoposter написан на нем, использует его синтаксис и библиотеки для работы пользовательских шаблонов. Здесь я проведу главный тезис своей статьи: оптимальный ЯП для перевода всего шаблона Zennoposter или его отдельный блоков в промышленный код является С++. С++ - это «язык Бога» среди других ЯП. Программы на С++ быстрые и не требуют много ресурсов, легко переносятся на unix-сервера, которые значительно дешевле windows‑серверов. Например, мой многопоточный шаблон для Discord, выполненный на С++ также работал в многопотоке на библиотеке libCURL на сервере с debian и использовал смешное количество памяти (50-100 мб), процессор практически не грузил. Однако, мне не удалось полностью воплотить в эту программу логику шаблона Zennoposter из-за её сложности. В другом шаблоне я использовал программу на С++ для быстрой проверки прокси с подключением через кубик «запуск программы». Подобный подход к программированию исповедуют и в yandex, где прототипы пишут на python, а промышленные образцы воплощают на С++. Не за горами и доступное нейросетевое программирование для Zennoposter, которое нуждается в серьёзных ресурсах при обучении нейронной сети. И тут подходящим кандидатом также является С++. Конечно, С++ сложнее в освоении и применении, чем любой другой ЯП, но такие интеллектуальные инвестиции оправданы, ИМХО.
Из литературы читайте Майерса, сам Страуструп точно не для новичков. Вот моя подборка текстов (многое не читал)

И ПРАКТИКУЙТЕ С++ - только это главное)
В практической части этой статьи пойдет речь о программировании на С++ параметров (ключей) запуска программ через командную строку. Это нужно, чтобы программа на С++ могла использовать разную логику в зависимости от вызова. Многие консольные программы, например, ping используют разные ключи для той или другой работы.

Ключи (параметры) запуска программ на С и С++ связаны с аргументами функции main(), точкой входа в программу. Обычно рассматривают два аргумента функции main(): argc и argv. argc (ARGument Count) имеет тип int и хранит количество аргументов командной строки, переданных пользователем, включая имя программы. Поэтому, если мы передадим значение в условную программу (например, pinggg google.com), значение argc будет равно 2 (один для аргумента (google.com) и один для имени программы(pinggg)). argv (ARGument Vector) - это массив символьных указателей со списком всех аргументов. Если argc больше нуля, элементы массива от argv [0] до argv [argc-1] будут содержать указатели на строки. Argv [0] - это имя программы (например, pinggg), после чего до argv [argc-1] каждый элемент является аргументом командной строки. Синтаксис функции main с аргументами выглядит так:
Как пример я написал программу на С++, которая выводит то или другое сообщение на консоль в зависимости от ключа.
1. Создаем пустой проект С++ в Visual Studio (это лучшая среда разработки для С++) и добавляем новый элемент .cpp
2. В файл .сpp пишем следующий код:
3.Сборка проекта
4. Чтобы запустить программу в консоли нужно перейти в папку, где сохранился .exe и вызвать программу с ключами
5. Для подключения программы к Zennoposter, нужно использовать кубик "выполнение программы". В данном случае использован ключ "2", вызывающий сообщение в консоли "С++ for Zennoposter"
К статье прикреплены файлы шаблона, программа на С++ (для windows 64) и листинг программы. Да прибудет с нами Сила)
Многие из опытных пользователей Zennoposter уже пишут на С# (си шарп) или PHP, или легко ориентируются в нескольких языках. Но базовым среди нас считается си шарп, здесь на форуме частенько советуют друг другу изучать именно си шарп, поскольку Zennoposter написан на нем, использует его синтаксис и библиотеки для работы пользовательских шаблонов. Здесь я проведу главный тезис своей статьи: оптимальный ЯП для перевода всего шаблона Zennoposter или его отдельный блоков в промышленный код является С++. С++ - это «язык Бога» среди других ЯП. Программы на С++ быстрые и не требуют много ресурсов, легко переносятся на unix-сервера, которые значительно дешевле windows‑серверов. Например, мой многопоточный шаблон для Discord, выполненный на С++ также работал в многопотоке на библиотеке libCURL на сервере с debian и использовал смешное количество памяти (50-100 мб), процессор практически не грузил. Однако, мне не удалось полностью воплотить в эту программу логику шаблона Zennoposter из-за её сложности. В другом шаблоне я использовал программу на С++ для быстрой проверки прокси с подключением через кубик «запуск программы». Подобный подход к программированию исповедуют и в yandex, где прототипы пишут на python, а промышленные образцы воплощают на С++. Не за горами и доступное нейросетевое программирование для Zennoposter, которое нуждается в серьёзных ресурсах при обучении нейронной сети. И тут подходящим кандидатом также является С++. Конечно, С++ сложнее в освоении и применении, чем любой другой ЯП, но такие интеллектуальные инвестиции оправданы, ИМХО.
Из литературы читайте Майерса, сам Страуструп точно не для новичков. Вот моя подборка текстов (многое не читал)

И ПРАКТИКУЙТЕ С++ - только это главное)
В практической части этой статьи пойдет речь о программировании на С++ параметров (ключей) запуска программ через командную строку. Это нужно, чтобы программа на С++ могла использовать разную логику в зависимости от вызова. Многие консольные программы, например, ping используют разные ключи для той или другой работы.

Ключи (параметры) запуска программ на С и С++ связаны с аргументами функции main(), точкой входа в программу. Обычно рассматривают два аргумента функции main(): argc и argv. argc (ARGument Count) имеет тип int и хранит количество аргументов командной строки, переданных пользователем, включая имя программы. Поэтому, если мы передадим значение в условную программу (например, pinggg google.com), значение argc будет равно 2 (один для аргумента (google.com) и один для имени программы(pinggg)). argv (ARGument Vector) - это массив символьных указателей со списком всех аргументов. Если argc больше нуля, элементы массива от argv [0] до argv [argc-1] будут содержать указатели на строки. Argv [0] - это имя программы (например, pinggg), после чего до argv [argc-1] каждый элемент является аргументом командной строки. Синтаксис функции main с аргументами выглядит так:
C++:
int main ( int argc , char * argv [] ){ тут тело функции}
1. Создаем пустой проект С++ в Visual Studio (это лучшая среда разработки для С++) и добавляем новый элемент .cpp
2. В файл .сpp пишем следующий код:
C++:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
if (argc < 2)
{
cout << "I am newbie " << endl;
}
else if(atoi(argv[1]) == 1 && argc == 2)
{
cout << "C# for ZennoPoster" << endl;
}else if(atoi(argv[1]) == 2 && argc == 2)
{
cout << "C++ for ZennoPoster" << endl;
}else
{
cout << "Super ZennoPoster" << endl;
}
cin.get();
return 0;
}
3.Сборка проекта
4. Чтобы запустить программу в консоли нужно перейти в папку, где сохранился .exe и вызвать программу с ключами
5. Для подключения программы к Zennoposter, нужно использовать кубик "выполнение программы". В данном случае использован ключ "2", вызывающий сообщение в консоли "С++ for Zennoposter"
К статье прикреплены файлы шаблона, программа на С++ (для windows 64) и листинг программы. Да прибудет с нами Сила)
- Номер конкурса статей
- Двенадцатый конкурс статей
- Тема статьи
- Нестандартные хаки
Вложения
Последнее редактирование модератором:






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