mfc导入dll的有关问题

mfc导入dll的问题
我新手,刚学的,不懂怎么导dll

我用VC6.0 MFC DLL生成了一个DLL,那个def文件的函数名写好了,函数实现也写好了 如下图:
void CSoundApp::PlayMusic(/*int type*/)
{
/* if (F_MUSIC_BEGIN==type)
    {
PlaySound(".\\music\\begin.wav",NULL,SND_ASYNC|SND_FILENAME);
    }
*/
   PlaySound(".\\music\\warning4.wav",NULL,SND_ASYNC|SND_FILENAME);
}


在MFC中动态调用

void CTest1Dlg::OnButton1() 
{
// TODO: Add your control notification handler code here
HINSTANCE hinst;
hinst=LoadLibrary("sound.dll");
typedef void (*play)(/*int a*/);
play playmusic=(play)GetProcAddress(hinst,"PlayMusic");
playmusic(/*5*/);

}

这样子可以运行(但是不知道潜在有什么问题)

但是我给这个函数加个参数,就是上面代码 注释起来的那些 这样运行点击能产生音乐,但是完了就出现
mfc导入dll的有关问题

网上搜说DLL函数入栈顺序错了 什么的 我新手看不懂啊 求神指导一下
------解决方案--------------------
你导出一个纯函数,然后它内部去调用类的实例方法PlayMusic等