well, my compiler preprocesses, links, and compiles all on its own. do i need to link the def file to my program, or to a library file, such as the above kernel32.lib?
You link the def file to your library. You are creating a DLL file. The def file is part of your DLL project. The def file is what tell the linker what functions are exported.

do i need to declare a main() function in the program? the DLL compiles right when i do, but i dont understand how i would call the function in the DLL file... this is alot more complicated than it needs to be....
No offense, but this is only complicated because you apparently have no idea what a DLL file is, or what it does. DLL files don't have main functions because they are not programs. They are just function libraries. You call your DLL functions from your program by linking to your DLL file. Do a google search on "DLL Tutorial" to read more. You are undoubtably going to have questions on how to link to your DLL and call it's functions, and there is no quick answer for that. You need to read some tutorials to learn the general basics of what DLL files are for, and how applications link to them. Then when you have more specific questions, post them here.