One of my friends has a client who needs someone to write a strong file encryption tool for him (that someone being me). Now, there's a bunch of approaches I can think of for this, so here goes:

1) Write a VB or C frontend for a program such as GNUPG (this is probably the simplest approach, but I don't want to do this).

2) Get a good strong crypto library and use it in a C/C++ program to encrypt files.(I'm leaning towards this approach). I tried libgcrypt but it only builds on *NIX and not on Windows, so that was a dead end.

3) Toughest, longest method. Get the algorithm for something like blowfish and write everything from scratch (could be fun, but I don't think I have that much time).

So, what I would really appreciate is to get pointed towards a good, secure cryptographic library that is free (as in GPL or BSD free or free for commercial use) that works in Windows. It would be an added bonus if there were binaries available.
Also, this is what I was thinking of suggesting to this guy. Use my program to generate a secret and a public key. Give it a username, password, comment, blablabla. Keep the public key on the machine and allow anyone to encrypt using it. Keep the private key in a secure location, such as a CD-R which is either carried on his person always or kept in a secure location and load it off the Read Only media (ie never copy it to his hdd). Anything wrong with this (sorry if these are dumb questions, but I'm a crypto n00b).
Thanks in advance.
Cheers,
cgkanchi