Эти функции и так есть. ID 1040, 1041.Artur писал(а):Очень не хватает события как наложение/снятие ограничения(серверному плагину). Сравнивать весь список довольно громоздко... Есть ли в планах добавление такой функции?
Архив: Технология создания плагинов
-
- Сообщения: 659
- Зарегистрирован: 08:54, 13.07.2010
- Откуда: Чебоксары, Россия
- Контактная информация:
Re: Технология создания плагинов
Re: Технология создания плагинов
Извини, сформулировал не правильно...KGB писал(а): Эти функции и так есть. ID 1040, 1041.
Это наложить и снять ограничение из инициирования событий... а охота прием таких событий как "X наложил ограничение на Y", ну такого типа...
-
- Администратор
- Сообщения: 6886
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов
Спасибо за информацию, проверим.@serg@ писал(а):Максим, хотел бы уточнить насчёт CommFortProcess ID 51 (Отправить изображение в общий канал). Возникло подозрение, что у вас есть небольшая утечка памяти на ней. Сначала думал, что утечка была у меня, но после долгих мучений закомментировал функцию передачи этого изображения (CommFortProcess), оставив всю остальную обработку данных и потеря пропала. Даже если учесть, что изображение в клиенте тоже занимает память, то каждое обходится более мегобайта
И параллельно несколько вопросов:
1) какой максимальный размер (в байтах) изображения, которые может принь клиент?
2) какой максимальный размер для текстовых сообщений?
3) нет-ли ошибки в "число(формат изображения)" для данного ID, оно осталось как было в 4 и 3 версии?
1) Не ограничено (ограничено только ресурсами клиента).
2) Указывается на сервере в настройках производительности.
3) ID такой же как и в предыдущих версиях.
-
- Администратор
- Сообщения: 6886
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов
Сделаем.Artur писал(а):Извини, сформулировал не правильно...
Это наложить и снять ограничение из инициирования событий... а охота прием таких событий как "X наложил ограничение на Y", ну такого типа...
Re: Технология создания плагинов
1) это выходит я могу отправить изображение весом и в 5 и в 20 мегабайт?Maxim Mirgorodsky писал(а):
Спасибо за информацию, проверим.
1) Не ограничено (ограничено только ресурсами клиента).
2) Указывается на сервере в настройках производительности.
3) ID такой же как и в предыдущих версиях.
2) что-то вылетел из головы этот параметр.
P.s. Отпишитесь, когда проверите про возможною утечку памяти.
Re: Технология создания плагинов
Подскажите как плагином можно обновить канал,суть такова мой плеер находиться в окне канала при нажатии кнопки он увеличиваеться в размере соответственно он закрывает сообщения,если его развернуть чуть побольше.Я пишу в Delphi.
-
- Администратор
- Сообщения: 6886
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов
1) Да. Масштабирование будет лежать на плечах клиента, так что в случае перегрузок проблемы будут на клиентской стороне. В следующей версии будет возможность публикации изображений серверными плагинами, и в той ситуации считать нагрузку от масштабирования будет очень важно.@serg@ писал(а):1) это выходит я могу отправить изображение весом и в 5 и в 20 мегабайт?
2) что-то вылетел из головы этот параметр.
P.s. Отпишитесь, когда проверите про возможною утечку памяти.
> P.s. Отпишитесь, когда проверите про возможною утечку памяти.
Действительно обнаружилась утечка памяти в коде масштабирования изображения (т.е. проявляется при публикации больших изображений). Спасибо за информацию, разумеется исправим в кратчайшие сроки.
Re: Технология создания плагинов
Maxim, если выходит ограничений на размер нет то это сильная дыра, к примеру я могу картинку превратить в 10-50 метровую версию и начать публиковать в общаке, тогда получится я смогу наглухо забить канал как сервера, так и некоторым клиентам, не правильней проводить масштабирование до отправки на сервер?
-
- Сообщения: 659
- Зарегистрирован: 08:54, 13.07.2010
- Откуда: Чебоксары, Россия
- Контактная информация:
Re: Технология создания плагинов
Масштабирование как раз производится клиентом до отправки на сервер, насколько я знаю@serg@ писал(а):Maxim, если выходит ограничений на размер нет то это сильная дыра, к примеру я могу картинку превратить в 10-50 метровую версию и начать публиковать в общаке, тогда получится я смогу наглухо забить канал как сервера, так и некоторым клиентам, не правильней проводить масштабирование до отправки на сервер?
Re: Технология создания плагинов
тогда извиняюсь, немного неправильно интерпретировал фразу
, сбила с панталыки система бота публикатора картинок, где картинка сначала сжималась одной программой, а потом ботом публиковалась сжатая версия.

Re: Технология создания плагинов
А нельзя ли добавить в систему плагинов новое событие, позволяющее очистить окно сообщений чата для конкретного канала, а то чтоб много памяти не хавал приходится отключать отображение картинок, а таковое бывает нужно только на конкретном канале.
Re: Технология создания плагинов
В 2007 CodeGear «воскресила» марку «Turbo» и выпустилаTurbo C++ Explorer (бесплатный)Yaroslav писал(а):Какую IDE брать, чтобы гарантировано подошли примеры?
CodeGear C++ Builder 2007 Enterprise Edition подойдёт?
Есть ли свободные IDE для разработки на cpp builder?
Компиляторы от Borland'а (CodeGear), плохо оптимизируют генерируемый код, builder не способен создавать 64х битные приложения и плохо поддерживает стандарты.
Я советую бесплатные Microsoft Visual C++ Express Edition, Eclipse с плагином CDT, Netbeans и Code::Blocks 10.05.
Чтобы подошли примеры, нужно заменить UnicodeString на std::wstring, AnsiString на std::string.
В реализации процедур PluginStart, PluginStop, PluginProcess, PluginGetData, PluginShowOptions, PluginShowAbout нужно добавить перед их именем слово "__stdcall" и подключить к проекту def файл с именами функций.
Эти функции тоже могут понадобиться для преобразования строк:
Код: Выделить всё
std::wstring strtows(const std::string str, UINT codePage)
{
std::wstring ws;
int n = MultiByteToWideChar(codePage, 0, str.c_str(), str.size()+1, /*dst*/NULL, 0);
if(n)
{
ws.resize(n-1);
if(MultiByteToWideChar(codePage, 0, str.c_str(), str.size()+1, /*dst*/&ws[0], n) == 0)
ws.clear();
}
return ws;
}
std::string wstostr(const std::wstring ws, UINT codePage)
{
std::string str;
int n = WideCharToMultiByte(codePage, 0, ws.c_str(), ws.size()+1, /*dst*/NULL, 0, /*defchr*/0, NULL);
if(n)
{
str.resize(n-1);
if(WideCharToMultiByte(codePage, 0, ws.c_str(), ws.size()+1, /*dst*/&str[0], n, /*defchr*/0, NULL) == 0)
str.clear();
}
return str;
}
std::string chcp(const std::string str, UINT codePageSrc, UINT codePageDst)
{
return wstostr(strtows(str, codePageSrc), codePageDst);
}
// Пример
//std::string strAcpSrc = "";
//std::string strUtf = chcp(strAcpSrc, CP_ACP, CP_UTF8);
//std::string strAcp = chcp(strUtf, CP_UTF8, CP_ACP);
//std::cout << ((strAcpSrc == strAcp) ? "success" : "error");
//std::cin.get();
Re: Технология создания плагинов
а спомощью какой программы и как делать плагины дайте ссылку на урок чтоли
Гомельский чат - Ultimatum.local
Re: Технология создания плагинов
Уроков по созданию плагина для коммфота не разу не видел, думаю их нет вообще=)livemen писал(а):а спомощью какой программы и как делать плагины дайте ссылку на урок чтоли
Пишутся плагины на Delphi/C++... Для начала советую почитать учебники, текстовые уроки, мб даже видео уроки найдешь, по этим языкам программирования...
-
- Администратор
- Сообщения: 6886
- Зарегистрирован: 09:56, 27.06.2005
Re: Технология создания плагинов
Некоторые пожелания которые мы обещали на новую версию в 5.03 не были реализованы, но это не значит что от них отказались. 5.03 - это промежуточная версия, развитие системы плагинов продолжится и далее.
Возможно реализуем.@serg@ писал(а):А нельзя ли добавить в систему плагинов новое событие, позволяющее очистить окно сообщений чата для конкретного канала, а то чтоб много памяти не хавал приходится отключать отображение картинок, а таковое бывает нужно только на конкретном канале.