My experience is with C++, but I would guess this is the same for C (except that of course you won't have classes; only functions).
Create a dll project. Define a variable on the compiler line (usually using the /d switch).
E.g. for your example, you might choose something like "
SOUND_EXPORTS"
You should try to make the first part unique, so that if you choose to include it later in another dll, or if someone else wants to use your dll, the name won't clash.
Then in your main header file, include a block like this:
#ifdef SOUND_EXPORTS
# define SOUND_API __declspec(dllexport)
#else
# define SOUND_API __declspec(dllimport)
#endif
The reason for the defines, is that so when you compile the dll (where you have defined your "*EXPORTS" compiler variable) your classes and functions will be exported, but when you include the header file in another project they will be marked as imports.
When you declare a function which you want to export, place it before the function declaration, e.g:
SOUND_API void Play();
Then all you need to do is include the header file in your exe (or other dll) project, link to it and use the functions as you would if they were in the same project.
I hope this helps and points you in the right direction.
Regards,
Ian.