mfc导入dll的有关问题
mfc导入dll的问题
我新手,刚学的,不懂怎么导dll
我用VC6.0 MFC DLL生成了一个DLL,那个def文件的函数名写好了,函数实现也写好了 如下图:
在MFC中动态调用
这样子可以运行(但是不知道潜在有什么问题)
但是我给这个函数加个参数,就是上面代码 注释起来的那些 这样运行点击能产生音乐,但是完了就出现

网上搜说DLL函数入栈顺序错了 什么的 我新手看不懂啊 求神指导一下
------解决方案--------------------
你导出一个纯函数,然后它内部去调用类的实例方法PlayMusic等
我新手,刚学的,不懂怎么导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*/);
}
这样子可以运行(但是不知道潜在有什么问题)
但是我给这个函数加个参数,就是上面代码 注释起来的那些 这样运行点击能产生音乐,但是完了就出现
网上搜说DLL函数入栈顺序错了 什么的 我新手看不懂啊 求神指导一下
------解决方案--------------------
你导出一个纯函数,然后它内部去调用类的实例方法PlayMusic等