Страница 11 из 26
Re: Технология создания плагинов
Добавлено: 12:16, 25.10.2010
KGB
Artur писал(а):Очень не хватает события как наложение/снятие ограничения(серверному плагину)

. Сравнивать весь список довольно громоздко... Есть ли в планах добавление такой функции?

Эти функции и так есть. ID 1040, 1041.
Re: Технология создания плагинов
Добавлено: 12:35, 25.10.2010
Artur
KGB писал(а):
Эти функции и так есть. ID 1040, 1041.
Извини, сформулировал не правильно...
Это наложить и снять ограничение из инициирования событий... а охота прием таких событий как "X наложил ограничение на Y", ну такого типа...
Re: Технология создания плагинов
Добавлено: 12:50, 26.10.2010
Maxim Mirgorodsky
@serg@ писал(а):Максим, хотел бы уточнить насчёт CommFortProcess ID 51 (Отправить изображение в общий канал). Возникло подозрение, что у вас есть небольшая утечка памяти на ней. Сначала думал, что утечка была у меня, но после долгих мучений закомментировал функцию передачи этого изображения (CommFortProcess), оставив всю остальную обработку данных и потеря пропала. Даже если учесть, что изображение в клиенте тоже занимает память, то каждое обходится более мегобайта
И параллельно несколько вопросов:
1) какой максимальный размер (в байтах) изображения, которые может принь клиент?
2) какой максимальный размер для текстовых сообщений?
3) нет-ли ошибки в "число(формат изображения)" для данного ID, оно осталось как было в 4 и 3 версии?
Спасибо за информацию, проверим.
1) Не ограничено (ограничено только ресурсами клиента).
2) Указывается на сервере в настройках производительности.
3) ID такой же как и в предыдущих версиях.
Re: Технология создания плагинов
Добавлено: 12:51, 26.10.2010
Maxim Mirgorodsky
Artur писал(а):Извини, сформулировал не правильно...
Это наложить и снять ограничение из инициирования событий... а охота прием таких событий как "X наложил ограничение на Y", ну такого типа...
Сделаем.
Re: Технология создания плагинов
Добавлено: 19:22, 26.10.2010
@serg@
Maxim Mirgorodsky писал(а):
Спасибо за информацию, проверим.
1) Не ограничено (ограничено только ресурсами клиента).
2) Указывается на сервере в настройках производительности.
3) ID такой же как и в предыдущих версиях.
1) это выходит я могу отправить изображение весом и в 5 и в 20 мегабайт?
2) что-то вылетел из головы этот параметр.
P.s. Отпишитесь, когда проверите про возможною утечку памяти.
Re: Технология создания плагинов
Добавлено: 21:15, 26.10.2010
SV
Подскажите как плагином можно обновить канал,суть такова мой плеер находиться в окне канала при нажатии кнопки он увеличиваеться в размере соответственно он закрывает сообщения,если его развернуть чуть побольше.Я пишу в Delphi.
Re: Технология создания плагинов
Добавлено: 10:48, 27.10.2010
Maxim Mirgorodsky
@serg@ писал(а):1) это выходит я могу отправить изображение весом и в 5 и в 20 мегабайт?
2) что-то вылетел из головы этот параметр.
P.s. Отпишитесь, когда проверите про возможною утечку памяти.
1) Да. Масштабирование будет лежать на плечах клиента, так что в случае перегрузок проблемы будут на клиентской стороне. В следующей версии будет возможность публикации изображений серверными плагинами, и в той ситуации считать нагрузку от масштабирования будет очень важно.
> P.s. Отпишитесь, когда проверите про возможною утечку памяти.
Действительно обнаружилась утечка памяти в коде масштабирования изображения (т.е. проявляется при публикации больших изображений). Спасибо за информацию, разумеется исправим в кратчайшие сроки.
Re: Технология создания плагинов
Добавлено: 19:01, 27.10.2010
@serg@
Maxim, если выходит ограничений на размер нет то это сильная дыра, к примеру я могу картинку превратить в 10-50 метровую версию и начать публиковать в общаке, тогда получится я смогу наглухо забить канал как сервера, так и некоторым клиентам, не правильней проводить масштабирование до отправки на сервер?
Re: Технология создания плагинов
Добавлено: 19:13, 27.10.2010
KGB
@serg@ писал(а):Maxim, если выходит ограничений на размер нет то это сильная дыра, к примеру я могу картинку превратить в 10-50 метровую версию и начать публиковать в общаке, тогда получится я смогу наглухо забить канал как сервера, так и некоторым клиентам, не правильней проводить масштабирование до отправки на сервер?
Масштабирование как раз производится клиентом до отправки на сервер, насколько я знаю
Re: Технология создания плагинов
Добавлено: 19:29, 27.10.2010
@serg@
тогда извиняюсь, немного неправильно интерпретировал фразу

, сбила с панталыки система бота публикатора картинок, где картинка сначала сжималась одной программой, а потом ботом публиковалась сжатая версия.
Re: Технология создания плагинов
Добавлено: 12:37, 30.10.2010
@serg@
А нельзя ли добавить в систему плагинов новое событие, позволяющее очистить окно сообщений чата для конкретного канала, а то чтоб много памяти не хавал приходится отключать отображение картинок, а таковое бывает нужно только на конкретном канале.
Re: Технология создания плагинов
Добавлено: 22:08, 30.10.2010
supermet
Yaroslav писал(а):Какую IDE брать, чтобы гарантировано подошли примеры?
CodeGear C++ Builder 2007 Enterprise Edition подойдёт?
Есть ли свободные IDE для разработки на cpp builder?
В 2007 CodeGear «воскресила» марку «Turbo» и выпустилаTurbo C++ Explorer (бесплатный)
Компиляторы от 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: Технология создания плагинов
Добавлено: 11:31, 31.10.2010
livemen
а спомощью какой программы и как делать плагины дайте ссылку на урок чтоли
Re: Технология создания плагинов
Добавлено: 12:31, 31.10.2010
Artur
livemen писал(а):а спомощью какой программы и как делать плагины дайте ссылку на урок чтоли
Уроков по созданию плагина для коммфота не разу не видел, думаю их нет вообще=)
Пишутся плагины на Delphi/C++... Для начала советую почитать учебники, текстовые уроки, мб даже видео уроки найдешь, по этим языкам программирования...
Re: Технология создания плагинов
Добавлено: 10:17, 02.11.2010
Maxim Mirgorodsky
Некоторые пожелания которые мы обещали на новую версию в 5.03 не были реализованы, но это не значит что от них отказались. 5.03 - это промежуточная версия, развитие системы плагинов продолжится и далее.
@serg@ писал(а):А нельзя ли добавить в систему плагинов новое событие, позволяющее очистить окно сообщений чата для конкретного канала, а то чтоб много памяти не хавал приходится отключать отображение картинок, а таковое бывает нужно только на конкретном канале.
Возможно реализуем.