MyException - 我的异常网
当前位置:我的异常网» VC/MFC » MFC 使用动态链接库出现的有关问题(附程序)

MFC 使用动态链接库出现的有关问题(附程序)

www.MyException.Cn  网友分享于:2013-01-12  浏览:1次
MFC 使用动态链接库出现的问题(附程序)
大家好:
    目前使用动态链接库实现某种功能,在动态加载dll文件后,在按钮实现程序中使用相应的动态链接库中的函数,却好像没有响应不知道是怎么回事。
代码如下:
在初始化函数中代码:
m_hDLL = LoadLibrary(_T("..\\Debug\\x.dll"));
if(m_hDLL==NULL)
{
AfxMessageBox(_T("Can not find x.dll!"));
return FALSE;
}
else
{
x_Init=(X_INIT)GetProcAddress(m_hDLL,"x_Init");
if(x_Init==NULL)
{
AfxMessageBox(_T("Can not find funtion x_Init in x.dll!"));
}

x_Set=(X_SET)GetProcAddress(m_hDLL,"x_Set");
if(x_Set==NULL)
{
AfxMessageBox(_T("Can not find funtion x_Set in x.dll!"));
}

x_Enable=(X_ENABLE)GetProcAddress(m_hDLL,"x_Enable");
if(x_Enable==NULL)
{
AfxMessageBox(_T("Can not find funtion x_Enable in x.dll!"));
}

x_Close=(X_CLOSE)GetProcAddress(m_hDLL,"x_Enable");
if(x_Enable==NULL)
{
AfxMessageBox(_T("Can not find funtion x_Enable in x.dll!"));
}

if(x_Init != NULL)
x_Init(GetSafeHwnd());
}
在按钮控件的实现函数中代码如下:
          UpdateData();

x_Set(a,b);

        x_Enable(TRUE);

------解决方案--------------------
http://blog.csdn.net/fengbingchun/article/details/6191847
------解决方案--------------------
首先看看dll到处函数是否声明正确
其次显式连接(动态调用)不行,楼主不妨试试看静态调用,
#pragma comment(lib,"xxxxx.lib");
extern "c" _declspec(dllimport) float x_set(int a,int b);

------解决方案--------------------
是否获取对应的函数地址,其次调用的DLL函数是否能够正常的工作

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有