Yes, you should definitely be using MSVC6 for your HL1 coding. Not only should it compile the SDK without any problems, it's just better in general than MSVC '05, which produces bloated files that rely on DLLs not included in Windows by default. Also, I strongly suggest you learn C and then C++ before even thinking of doing any HL coding. Otherwise you'll be stuck copy-pasting code from tutorials without even understanding what it means/does.
1) It depends on what project you're building. There are two, the server DLL and client DLL. To open them, open up [SDK]/Single-Player Source/dlls/hl.dsp and [SDK]/Single-Player Source/cl_dll/cl_dll.dsp, respectively. The server project holds code for things like weapons, monsters, triggers, etc., while the client project holds code for things like the HUD and keyboard input. Once you've got one of these projects open you can edit the different source files, or add new ones (Project -> Add To Project -> New). Once you're done you need to compile. This can be done by clicking Build -> Build xxx.dll, or just hitting F7 (it may take a while). When it's done, the resulting DLL file will be in one of two places: if you're building hl.dsp, it'll be in [SDK]/Single-Player Source/dlls/Profilehl as hl.dll. If you're building cl_dll.dsp, it'll be in [SDK]/Single-Player Source/cl_dll/Debug as client.dll. These DLLs go into your mod's dlls and cl_dlls folders. If you're trying to add a new weapon you'll need to edit the server project.
2) Look in [SDK]/Single-Player Source/dlls/game.cpp.
3) Read all about HL weapons
here.
As for tutorials, you can find a list of them
here.
And I'm not sure about your linking problem as I've never encountered it myself, does this happen when you're using MSVC6?