Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ DC-клиенты _ Компиляция Клиентов Dc++

Автор: Setuper 20.11.2008, 20:50

Компиляция Клиентов Dc++
Думаю, что многие видели различные версии клиентов DC++.
Однако, все эти клиенты возникли от одного праотца DC++.

Для компиляции своего клиента необходимо следующее:
1). Среда разработки Microsoft Visual Studio 2008.
2). Библиотека WTL  WTL80_sf.7z ( 823.9 килобайт ) : 191
3). Исходники клиента DC++  DCPlusPlus_0.699_src_vs9.7z ( 3.28 мегабайт ) : 194


1). Microsoft Visual Studio 2008 качаем откуда-нибудь или покупаем feel_good.gif
2). Библиотеку WTL (Windows Template Library) распаковываем в любую папку, и после этого из этой папки копируем содержимое папки include в папку Microsoft Visual Studio/VC/include.
3). В исходниках уже создан проект, поэтому просто открываем файл DCPlusPlus.sln. После открытия компилируем проект, построенный проект после компиляции появится в папке app.

Вот и всё! Строим проект, модифицируем файлы и создаём свои моды клиента exciting.gif

Автор: Delion 20.11.2008, 22:25

Цитата
DCPlusPlus_0.699_src_vs9.7z

Почему старая версия?

Автор: Setuper 20.11.2008, 22:28

Ну так возьми исходники новой на сайте, какие проблемы?))))) http://mydc.ru/r/?http://dcplusplus.sourceforge.net/download/ Они не сильно отличаются))
Какая на данный момент у меня версия была, ту и выложил, а качать какую-то более новую влом было big_smile.gif

Автор: Setuper 27.11.2008, 23:52

У тех, кто компилил клиент на vs2005, прошу прощения, я не верно написал. Конечно же выложенные проекты под vs2008, а не под vs2005.
Хотя проекты под vs2005 также в этом архиве есть, но они помечены как old.

Автор: Svyat 28.11.2008, 0:15

Для Линукса среды http://mydc.ru/r/?http://www.eclipse.org/cdt/ и http://mydc.ru/r/?http://www.codeblocks.org/ . Пишу в надежде на нормальный порт)

Автор: jnick 6.1.2009, 14:23

А есть исходники под x64?

Автор: Jaska 17.1.2009, 0:13

Вот зараза весь инет перерыл в поисках инфо о компиляции клиентов а она оказалась ближе чем я думал big_smile.gif

Ммм. Дц++ конечно прапрадедушка всех клиентов и безусловно заслуживает уважения, но думаю лучше уж расписать компиляцию чего-нить по-популярнее, к примеру flylink. Есть 2 статьи - одна подробная статья по сборке apexdc но на английском есть неполная на русском, надо будет порыться в закладках отыскать статью. Если вы найдете первее меня - выкладывайте)

Есть одно важное замечание (во всяком случае для флая точно) - не качайте express версии visual studio только team suite. разница конечно огого (~800мб против ~4гб) в экспресе вы не сможете скомпилировать из-за отсутствия кое каких заголовочных файлов

Вообще для меня идея сборки хаба наверно почти лишена смысла из-за отсутствия достаточных знаний Си. Однако одна безумная идея меня никак не покидает поэтому хочу обратиться к знатокам. Что если при коннекте юзера отправлять хабу допустим строку $Ratio xxxxx bytes download xxxxx bytes upload. Насчет этого я разговаривал с PPA но он сказал (почему то непонятно для меня) что хаб просто забанит за флуд. Если сделать это в клиенте дело за малым - писать скрипт которые перехватит строку и извлечет информацию, если же хаб под никсом запущен можно опять таки залезть в исходники.

Если бы можно было реализовать такую штуку было бы очень здорово. Можно ввести рейтинг как на торрентах.

Автор: Setuper 17.1.2009, 0:49

Это ты предлагаешь изменить протокол! Это надо будет менять абсолютно во всех клиентах и серверах - это просто не реально.
PPA наверняка тебе сказал, что если клиент отправит данную команду хабу, то хаб посчитает эту команду неизвестной и тут же разъединить тебя.
Можешь сам проверить это: отошли данную команду (или любую другую неизвестную команду) как RAW команду и хаб тут же закроет с тобой соединений. Все доступные команды протокола тут: http://mydc.ru/topic915.html

Автор: Jaska 17.1.2009, 7:06

Я понимаю что я предлагаю изменить. Но что если эту команду добавить допустим в ptokax? Исходники имеются нужны лишь знания и прямые руки.

Не обязательно делать это масштабно, можно даже сделать и выложить допустим здесь. Я бы пользовался именно этим хабом и этим клиентом. Перевел бы своих пользователей заодно.

Лично я хочу и наверно даже попробую это сделать. Было бы замечательно если бы ты, Setuper тоже попробовал (у тебя шансов больше на успех нежели чем у меня)

Автор: Jaska 21.1.2009, 18:04

Кстати равзе функция UnknownArrival(tUser, sData) не предназначена для неизвестных команд от клиента?

Автор: Setuper 21.1.2009, 20:08

Да, предназначена. При отправки неизвестной команды, если данная функция вернёт true, то пользователь не будет отключен)

Автор: Jaska 21.1.2009, 20:19

Кстати будь добр протестируй работает ли у тебя UnknownArrival(tUser, sData) на 0.4.1.1 ато я у себя стал проверять sData не пустое но и не выводится в чат. Немного в замешательстве я ...

Автор: Setuper 21.1.2009, 20:34

всё работает:

Код
function UnknownArrival(tUser, sData)
  Core.SendToAll("->"..sData)
  return true
end

Автор: Jaska 21.1.2009, 20:40

Хм, инетересно есть ли клиент с поддержкой lua, типо грея, который бы мог отправлять хабу Ratio (чтобы не лезть в "корни")

Автор: Setuper 21.1.2009, 20:43

а чем грей не устраивает?

Автор: Jaska 21.1.2009, 20:47

У меня к нему "личная неприязнь". Смотрел его функционал не увидел чтобы в луа можно было выдернуть статистику.

Автор: Setuper 21.1.2009, 20:50

На счёт lua ты прав, там нельзя из lua отправлять команды, но их можно отправлять из менюшки))) как RAW команды

Автор: Jaska 21.1.2009, 21:04

Ага)) очень здорово заставить полторы тысячи пользователей каждую минуту тыкать менюшку)))) я думаю они буду отправлять не реальную стату а что взбредет в голову))

Автор: KpoJIuk 25.1.2009, 19:09

Помогите пожалуйста! как скомпилировать, например, ApexDC или FlylinkDC? скачал с оф. сайта, но в конце компиляции пишет, что были ашипки! пробовал разные клиента и разные их версии! везде так beat_brick.gif компилил в мойкросовок визуал студио 2008. Думаю, что чего-то нехватает для него или что самое смешное: они для другово компилятора big_smile.gif))

Автор: fire64 7.6.2010, 21:43

При компиляции возникло множество проблем.
решил их с помощью добавления в cpp файлы инклюда

Код
#include <stl/_auto_ptr.h>


закомментировал строку _STLP_HAS_TYPE_TRAITS_INTRINSICS в _msvc.h

установил питон питон версии 2.6, так как более новые не поддерживаются.

так же пришлось искать в сети файл natupnp.h

в итоге все же DCPlusPlus.exe скомпилировался и успешно работает.

Автор: Poldan 14.6.2010, 14:11

Помогите!

Результат компиляции FlylinkDC++:

1>------ Построение начато: проект: FlylinkDC, Конфигурация: Debug Win32 ------
1>Осуществляется событие перед построением...
1>Deleting old pdb file...
1>Компоновка...
1>LINK : warning LNK4199: параметр /DELAYLOAD:gdiplus.dll;dbghelp.dll;oleaut32.dll;powrprof.dll;uxtheme.dll игнорируется; не найдены операции импорта из gdiplus.dll;dbghelp.dll;oleaut32.dll;powrprof.dll;uxtheme.dll
1>boost.lib(thread.obj) : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl boost::tss_cleanup_implemented(void)" (?tss_cleanup_implemented@boost@@YAXXZ) в функции "void __cdecl boost::`anonymous namespace'::create_current_thread_tls_key(void)" (?create_current_thread_tls_key@?A0x6fb6e68e@boost@@YAXXZ)
1>D:\flywork2\compiled\FlylinkDC_Debug.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>Журнал построения был сохранен в "file://D:\flywork2\vc9\Win32\Debug\FlylinkDC\BuildLog.htm"
1>FlylinkDC - ошибок 2, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 9, пропущено: 0 ==========

Все делал как наисано здесь - http://mydc.ru/r/?http://code.google.com/p/flylinkdc/wiki/Compilation

Не подскажите почему вылетает ошибка?

Автор: hyrod 11.10.2010, 0:50

Пытаюсь собрать под CentOS 4.8:
и получаю ошибку
./linuxdcpp/Thread.h:36: error: conflicting declaration 'struct Thread'
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/perl.h:3516: error: 'Thread' has a previous declaration as `typedef void*Thread'
Подробности:

Раскрывающийся текст

make
cp lib/Net/DirectConnect/http.pm blib/lib/Net/DirectConnect/http.pm
cp lib/Net/DirectConnect/hub.pm blib/lib/Net/DirectConnect/hub.pm
cp lib/Net/DirectConnect/filelist.pm blib/lib/Net/DirectConnect/filelist.pm
cp lib/Net/DirectConnect/adc.pm blib/lib/Net/DirectConnect/adc.pm
cp lib/Net/DirectConnect/clihub.pm blib/lib/Net/DirectConnect/clihub.pm
cp lib/Net/DirectConnect/clicli.pm blib/lib/Net/DirectConnect/clicli.pm
cp lib/Net/DirectConnect/hubcli.pm blib/lib/Net/DirectConnect/hubcli.pm
cp lib/Net/DirectConnect/nmdc.pm blib/lib/Net/DirectConnect/nmdc.pm
cp lib/Net/DirectConnect.pm blib/lib/Net/DirectConnect.pm
cp lib/Net/DirectConnect/hubhub.pm blib/lib/Net/DirectConnect/hubhub.pm
make[1]: Entering directory `/distr/dc_perl_bot/TigerHash'
cp lib/Net/DirectConnect/TigerHash.pm ../blib/lib/Net/DirectConnect/TigerHash.pm
/usr/bin/perl /usr/lib/perl5/5.8.5/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.8.5/ExtUtils/typemap TigerHash.xs > TigerHash.xsc && mv TigerHash.xsc TigerHash.c
g++ -c -I. -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"0.02\" -DXS_VERSION=\"0.02\" -fPIC "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" -I./linuxdcpp/ -I../linuxdcpp/ TigerHash.c
In file included from ./linuxdcpp/CriticalSection.h:26,
from ./linuxdcpp/FastAlloc.h:26,
from ./linuxdcpp/HashValue.h:26,
from ./linuxdcpp/MerkleTree.h:28,
from TigerHash.xs:23:
./linuxdcpp/Thread.h:36: error: conflicting declaration 'struct Thread'
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/perl.h:3516: error: 'Thread' has a previous declaration as `typedef void*Thread'
make[1]: *** [TigerHash.o] Ошибка 1
make[1]: Leaving directory `/distr/dc_perl_bot/TigerHash'
make: *** [subdirs] Ошибка 2


Есть идеи с чем может быть связано? В openSUSE тоже самое собралось без проблем.
Можно ли просто перенести модуль DirectConnect из OpenSUSE в CentOS?

Автор: mariner 11.10.2010, 6:26

1ое - ЕМНИП, но linuxdcpp собирается не make, а scons
2ое - не перенести
3е - что за версия linuxdcpp

Автор: pro 14.12.2010, 2:45

Цитата(hyrod @ 11.10.2010, 0:50) *
Пытаюсь собрать под CentOS 4.8:
и получаю ошибку
..
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/perl.h:3516: error: 'Thread' has a previous declaration as `typedef void*Thread'
make[1]: *** [TigerHash.o] Ошибка 1
make[1]: Leaving directory `/distr/dc_perl_bot/TigerHash'
make: *** [subdirs] Ошибка 2
[/expand]

Есть идеи с чем может быть связано? В openSUSE тоже самое собралось без проблем.
Можно ли просто перенести модуль DirectConnect из OpenSUSE в CentOS?


а собирается ли отдельно новый
http://mydc.ru/r/?http://search.cpan.org/CPAN/authors/id/P/PR/PRO/Net-DirectConnect-TigerHash-0.04.tar.gz
или из svn?