ADCH++ User Guide

Well in an attempt to get user to understand how to use ADCH++ ive made a simple user guide that will show the basics of using ADCH++

Hopefully this guide will end up in the repository for ADCH++ and suggestions on missing features or details needing more explanation are always welcome just post about it in the blog post or at DCDev Public

ADCH++ 2.4 pushed out


Well a new version of ADCH++ is out due to the fact that we kinda messed up the 2.3 release so for all of you that are out there running 2.3 update to 2.4 and you will be fine.

We also added documentation from ADCH++ on the website for any developer wanting to help out by making plugins or lua scripts.


  • 222. By Pietry
    edited installer, changelog, version
  • 221. By poy
    fix command dispatching
  • 220. By poy
    fix ban reason
  • 219. By poy
    add +topic (and aliases), shortcut to +cfg topic
  • 218. By poy
    add history & motd to the default scripts list

ADCH++ (Windows Bin Zip File)

ADCH++ (Windows Installation)

ADCH++ (Source Windows/Linux)

ADCH++ now more then an empty shell

Hey people back again doing a monolog here on the blog this time its about ADCH++ 2.3

We all know that the last release wasn’t a big success but i wanna show of the new features in ADCH++ , it was more then a year ago since we had a release on ADCH++ and much new stuff has been added into it.

So what are the new features:

User Commands, ADCS (preliminary implementation), more scripts for the soft.

There is also a doxygen included in the BZR repo at launchpad for anyone that wants to make a plugin in C++ or make lua scripts or python script all you have to do is download Doxygen to make the documentation we will host the documentation at ADCH++ webspace on Sourceforge also.

I really wanna commend poy for his efforts put into this version of ADCH++ and listening to input and feedback with this version things can only get better in the future of ADCH++

We are still looking for a GUI maker so if your out there and think you got what it takes drop into DCDev Public and talk to us or drop the source of at launchpad.

and we hope that suggestions for ADCH++ will come up at our tracker on Launchpad so we can get your input for what your missing in ADCH++ or possible bugs thats giving your problems.

So people out there give it a go and say what you think about it :)

ADCH++ 2.3 Windows Installer

ADCH++ 2.3 Windows Zip File

ADCH++ 2.3 Source Code (both Windows and Linux)

ADCH++ First Release

After more than a year, here it comes, ADCH++ 2.1 , the first release. You can find it here.

Contains an installer and a zip for win32 users ( precompiled and ready to go ). Note that win32 testing has not been completed throughly ( may still have some problems ). If you have anything to report, you can visit the public development hub adc:// or reply to this post.

The release also contains a source package ready to be compiled by linux or windows users. More information about compiling can be found in the readme.txt file supplied in the package, or in some previous blog posts :

Compiling ADCH++ under windows and
Compiling ADCH++ under POSIX

ADCH++ is compatible with ADC 1.0 ( but like DC++, supports older versions of protocol for easening the transition ).

This release does not include the Bloom filter (not fully completed ) , although it can be created by compiling the source . ( The bloom filter creates a hashmap of all users’ share, and searches that don’t have any possible result are ignored , hence reducing bandwidth and resource usage )

2.1 is marked unstable for obvious reasons, but hopefully in the future there will be a more stable release.

Scripts For ADCH++

Please post links to the scripts you have made for ADCH++ here.

If you need hosting for them, I can quite happily do that for you. :)

Look around for more space to escape

If people look at the previous post on escapes, they probably notice that we’re essentially “increasing” what is being sent in ADC to represent certain things. And of course, the NMDC advocates say that this is one of the reasons why ADC is worse and that NMDC is better.

Well, they’re correct in one part. We are increasing the bandwidth when we want to use certain characters. We will not get away from this. This is a fact, and I can’t dispute it.

I checked previous post for spaces. There were 329 of them. This mean that in NMDC, it would have been 329 characters to represent the spaces, and 658 characters to represent them in ADC. However, we know that while messages are a contributor to overall bandwidth, but there are far worse culprits.

On a different note, what would happen if we used a different character to represent the visual character of a space? Well, then we’d “get rid of” the escape sequence for a space. Eg, what if the client would replace, before sending the message, every normal space with a non-breaking space. The character would look like a normal space, and depending on how clients and hubs interpret characters, it wouldn’t be treated as a delimter.

I tried this with DC++ and ADCH++; It worked like a charm. Visually, the character appear as a normal space, and DC++ doesn’t attempt to encode it nor does ADCH++ choke. (The “annoying” thing is that if you enable AdcDebug, the output might throw you off.)

Also, there’s probably other characters that are visually a space, but are not actually one. If developers are afraid to use much bandwidth, you know what to do. (Yes, I can agree that this is an weird solution, but I believe it to be the only one. We should NOT introduce other things in ADC that would change command design.)

Don’t forget that you can make topic suggestions for blog posts in our “Blog Topic Suggestion Box!”

Compiling ADCH++ with Mingw on Windows

And another how-to on compiling ADCH++. This time with Mingw on Windows. Check out the previous POSIX and Visual Studio 2005 (Windows) tutorials.

Credit for this tutorial goes to Pothead.

  1. Install Python
  2. Install scons
  3. Install swig
  4. Install boost (copy the contents of boost_1_33_1\boost to C:\Boost\include\boost-1_33_1\boost )
  5. Install mingw (not sure what parts are needed, but i got the gcc-core gcc-g++ binutils runtime utilities and w32api, and it works with all of them)
  6. Install Msys (part of mingw)
  7. Download and place Stlport 5.0.2 in the STLPort directory in Adchpp’s root directory
  8. Ensure Pyton, Swig and Mingw’s paths are available in %PATH%
  9. Compile STLPort
    1. Load up Msys
    2. Navigate to the STLPort\build\lib directory
    3. Type: make -f gcc.mak depend
    4. Type: make -f gcc.mak install
    5. Close Msys
  10. Compile Adchpp
    1. Goto adchpp directory
    2. To build in debug mode Type: scons to build in debug mode
    3. To build in release mode Type: scons mode=release

(To find links to the other programs, look in the previous posts or use a search engine.)

Compiling ADCH++ on POSIX

This is a how-to to compile ADCH++ on POSIX, specifically Linux Ubuntu 6.06 LTS. If you are on Windows, check out the previous post.

An early disclaimer; I am not a experienced POSIX user, and I’m certainly no expert at compiling ADCH++, but it’ll have to do.

The following libraries/commands are what I experienced I had to do when trying to compile ADCH++.

Create the directory ~/adch++/. (Or wherever/whatever you want to call it.)

Enter the directory, and download ADCH++ by doing “svn checkout –username anonymous”

Download the following; Boost 1.33.1, swig 1.3.29, STLport.
Download and install bjam (I used 3.1.11-1 and downloaded it through Synaptic.)

Extract STLport in ~/adch++/, so you have ~/adch++/STLport/. Enter ~/adch++/STLport/build/lib and do ./configure, then do “make -f gcc.mak depend” and then “make -f gcc.mak install”.

Extract boost_1_33_1 so you have ~/adch++/boost_1_33_1/. Do ./configure, then “make” and then “make install”.

Extract swig anywhere, enter the directory it is in. Do ./configure, then “make” and then “make install”.
Enter ~/adch++/, and do “scons”.

Now, I should say that I encountered two problems. You may not experience them. Firstly; the variable ‘versionString’ was apparently unreachable, so I just removed it and put any string in quotes. So, s/versionString/”ADCH++”. Secondly; the variable ‘FULLVERSIONSTRING’ was also apparently unreachable, so I just removed it and put any string in quotes. So, s/FULLVERSIONSTRING/”ADCH++”.

Doing just “scons” will produce ADCH++ in ‘debug’ mode. If you want it in ‘release’ mode, do “scons mode=release”. (You can ofcourse specify ‘debug’ the same way.)

When scons is complete, enter ~/adch++/build. You will see either the debug or release directory (or both). Enter now ~/adch++/build/debug-default/bin/. And now do “./adchpp”. You should now have a working ADCH++!

The default port is 2780, but you can change that in ~/adch++/etc/. Open adchpp.xml and scroll down to the port, and enter whatever you want. (Remember, there is no default port in ADC.)

If you know something that isn’t necessary, please do tell. If you encounter any problems, I’d prefer the ADCH++ forum.

Compiling ADCH++ with Visual Studio 2005 on Windows

So, you’ve been trying to compile ADCH++, but have been failing? Well, here’s a nice guide on how to do it with Visual Studio 2005. (For your information, Trem, that little cutie pie, wrote it. I haven’t tried it, so if it doesn’t work, blame him. Well, you can blame him anyway for everything else but that’s besides the point.)

1. Download TortoiseSVN and install, let it reboot.

2. Create a folder for the project (c:\adchpp will be used throughout this guide).

3. In Windows Explorer, right click and select SVN checkout. In the resulting dialog box fill in as the URL and click OK.

4. Download STLport and unpack it in c:\adchpp. This should give you a c:\adchpp\stlport\stlport folder.

5. Download Bjam and unpack the .exe to c:\windows\system32 (assuming Windows is installed on C:). Make sure the folder name isn’t extracted.

6. Download Boost and extract it to c:\adchpp, this should give a c:\adchpp\boost_1_33_1 folder.

7. Open Visual Studio (2005) and go to Tools->Options->Projects and Solutions->VC++ Directories. Select include files from the drop down box. Add c:\adchpp\stlport and c:\adchpp\boost_1_33_1 to the top of the list and save the settings.

8. Open Visual Studio’s command prompt from the start menu (regular cmd won’t work) and change to c:\adchpp\boost_1_33_1\

9. Run the command set: VC80_ROOT=%VCINSTALLDIR%

10. Run the command set: bjam “-sTOOLS=vc-8_0” install (this could take time)

11. In Visual Studio select File->New->Project from Existing code. Select Visual C++ project. Set project file location to c:\adchpp\ and project name to adchpp. In Add files box, remove c:\adchpp and add c:\adchpp\Windows and c:\adchpp\adchpp. Click next and select console application from the drop down box. Put BUILDING_ADCHPP in the preprocessor definitions box and in the Additional include box add c:\adchpp\ and click finish.

12. Right click the adchpp project and select Properties. Go to Linker->Input and input “ws2_32.lib Mswsock.lib” (without the quotes) to the Additional Dependencies box and click ok.

13. Open c:\adchpp\adchpp\config.h and scroll to line 59. It should look like

# if _MSC_VER == 1200 || _MSC_VER == 1300 || _MSC_VER == 1310

Change it to

# if _MSC_VER == 1200 || _MSC_VER == 1300 || _MSC_VER == 1310 || _MSC_VER == 1400 #define _CRT_SECURE_NO_DEPRECATE 1

14. Open c:\adchpp\adchpp\PluginManagerh and go to line 227. It should look like

ADCHPP_DLL static PluginManager* instance;

Change it to

static PluginManager* instance;

15. Go to Build->Build Solution and it should give you a finished adchpp for you to play around with =)


Always wanted DCH++ which was sort of hard to get? Well, instead, you get ADCH++, the ADC server. Happy hosting!