Expand I Wrote Some C Plus
Jan 29th, 2008 6:41 PM, 2 comments
I wanted a Winamp Plug-in that would tell Skype what I was currently listening to when I was currently listening to stuff. Jeff told showed me one that required I run an entirely separate application and was otherwise very lame. I then decided that I was both talented and intelligent enough to write a plug-in myself that would carry out this simple task. Side Note: The irony of this past sentence is that as soon as I typed "intelligent", I questioned it, and hit spell check to make sure I had gotten it right (I so totally did).

Knowing already that I was going to have to write the plug-in in C++, I started searching the web for some sample codes to change Skype's personal message field (which I later found out was called Mood Text). I fairly quickly found Skype's Developer Zone, and shortly after that, a C++ example. I was able to compile the example and run it with no problems. There was no intellisense help, so it took me a little bit to take the example and figure out ->Set->MoodText() was what I needed.

After that, I grabbed the official Winamp SDK and tried to jump right in to the generic plug-in sample. I couldn't exactly get the thing to build -- mostly because it was written in C -- and I was frustrated at that point, so I gave up.

A few days later I picked it up again and after more searching, I found the Winamp Beta SDK, which contained a working example, but was still written in C. Convinced I could find a working C++ example, I searched more and finally found this thread with a fully working example. I was in business.

On and off over the next two weeks I googled for help a ton, gave up a few times, and struggled a great deal developing what really is an extremely simple routine: get the song Winamp is playing, tell Skype about it, wait 15 seconds, and repeat. I learned a bunch of different things through my struggles:

  • how to allocate memory
  • how to free up that allocated memory
  • exactly what happens when you don't free it up
  • sizes of different data types
  • what wide characters are
  • how much of a bitch trying to cast from different data types is (thanks Tolley)
  • threading in C++ (thank god for Boost)
  • different linker and compiler settings
  • string handling in C++ (thanks Noah)
  • dll dependencies (thank god for Dependency Walker)
  • side-by-side assemblies

    In the end I was successful. It took me 14 days total to finish it, which is a useless statistic because of how many times I quit and how few hours I was able to put towards the project. It has a bug (my Stopped/Paused detection doesn't work), but I'm using it both at home and at work with great success.

    I've always felt like I wasn't a real developer because I wrote/write the majority of my codes in (chronological order) Visual Basic 3, Visual Basic 5, ASP, PHP, and C#. I mean really, any asshole is capable of writing these types of codes. Sure I've written bits of C++, Pascal, Perl, and probably some other rubbish along the way both in and out of school, but not to any extent. Also, I really didn't retain any of it and it was all retarded stuff like the solving the *ultra-complex* 8 queens puzzle! Sometimes I want to code some hard core C++ and feel like I'm actually doing something unique-ish, but the return on investment while writing your C# or your PHP is too great to give up. I need some rich company to pay me 6 figures to write them some serious C++ codes -- I think I'm worth it.

    Another side note: I found my one of my first web applications, written in Turbo Pascal back on (or at least deployed back on) December 10th, 1997. Check out them hot-shit codes -- it was nothing more than a comments form (post your name and a comment, and display all comments posted). I've gotten a lot better since then. Honestly.
  • Valid HTML 4.01! powered by Sphinx DPCPrints! fstreamz submute Leshii Tabor Web Two Middle Names
    arcade/ ; puzzle/ ; version1/ ; version2/ ; aim ; skype ;
    rss ; rdf ; 0.023 seconds ;