SKIL wrote:F've noticed on your forum many topics complaining about compiling DC++. Besides "Get VC2003, i couldnt find other answers". Well, this should put you all to thoughts.
You should have found a few more answers than that:
If you're using VS6, common problems are project files that are missing files added since VS6 support was dropped. Also, a Platform SDK of November '01 or newer is necessary. There are a few cases where variables need to be renamed (due to the C++ compiler in VS6 not properly localizing variables). The latter issue should not be the case with 0.301.
DC++ by its "kind" is a simple program. But the 102 .h files, 69 .cpp files in it's package plus the 320 files in stlport and v7, can drive even an expert developer out of his minds.
It gives me the sensation that it's a competition called "Who's writing the program with the maniest files!"
If you want to understand DC++, you do not have to understand all of the STLPort or WTL 7.0.
Perhaps you'd be better off with eMule, which only has 189 .h, 4 .hpp, and 153 .cpp files.
I know you will say that it's iligible, but the often compiling errors, prooves not! Why don't you make your program in a normal manner? Without the two v7 and stlport, and visual c++ 2003 support. What can be done there and cannot be done in visual c++ 6, or even visual c++ 5?
The existence of compiling errors only means that you have not properly set up stlport and wtl, or that you are using a non-standards compliant C++ compiler. Visual C++ .NET and .NET 2003 are much more compliant with the C++ standard than VC6 or VC5. This means there are less pre-processing kludges to get around compiler specific behaviors.
I think you should consider rewriting the program like a normal one, who uses sockets, and less in packages, a program who can be modified and developed easyly.
I believe that once you're familiar with the source code, you will see that DC++ can be modified and added onto easily, precisely because of its modularity.
I don't say the code it's buggy, it's even bug-free, but it's too extended. The number of files and compilation packeges requiered are suitable if you would have made a Operating System Kernel, not a program which is used for filesharing.
Please see my reference to the eMule source code above.
You seem to be quite mistaken about the size of the project - the DC++ source is 3 megabytes or so uncompressed. The 2.4.21 Linux kernel, on the other hand is:
Code: Select all
linux-2.4.22.tar.gz 35770 KB 8/25/2003 11:44:00 AM
35 megabytes or so, compressed.
You should port it to VC6.0 and i shall tell you why!
programs compiled with VC2.0 on Windows 95 (1995) work fine now on my Windows 2003, i don't see what evolution should be necesary for you to keep in step with your compiler - with VC7.0. Probably in 2007 - 2008 (earlyest) programs made with VC6.0 won't work any longer! Until then STOP tormenting programmers with your bushy style of programming.
VS6 support is on its way out... DC++ is currently compiled with .NET 2003, and this will also mean that standards compliant compilers will be much more happy with the code. If you cannot get the current DC++ 0.301 source code to compile, it's not for lack of help in this forum.
"Bushy" is pretty amusing, but you seem to be ranting here, not arguing coherently.
That's the biggest disease of Open Source, a disease that even DC++ suffers. Because it's hard to understand, and sometimes does not compile, some developers start to make from scratch their own versions of DC++, which is not good, because it may come up to many versions of DC++. If you'd arrange the code, remove the useless STLPORT and WTL and write the program as a single package guaranteed to compile on every PC in the world (or almost), I asure you that there will no longer be 50% of the posts on Programmer's Help posts entitled "Compiler Error!"
The errors here are indeed because DC++ requires STLPort and WTL. WTL is used for the graphical user interface. If you remove it, you have to come up with an alternative. If you port it to MFC (Microsoft Foundation Classes), I believe you would see changes for the worse in speed and code size. STLPort is necessary at the moment because of a discrepancy in how hash_maps are handled in the C++ Standard (ie. they're not in it, AFAIK), STLPort, and the .NET 2003 STL implementation.
There is no problem with DC++ forks. No author I've seen has taken it upon himself to simplify DC++. I think you're mistaken that programmers even believe it it too complicated. All the forks I've seen are to add features DC++ lacks, or that Arne has stated will not be added.
Your posts both seem like you had errors when you tried to compile DC++ with Visual Studio 6, and failed. You then decided to rant, in length, on the source code... This is not cool. Just ask your question, and we'll try to help. The source code is not the problem.
(Edit: spelling)