读书人

一个dll调用的有关问题

发布时间: 2012-02-24 16:30:39 作者: rapoo

求助一个dll调用的问题
我有一个叫做HQDLAPI.dll的文件。现在我写了另外一个对话框,里面要用到HQDLAPI.dll文件中的HQDLAPIUSER.h。
我写了#include "HQDLAPIUSER.h " ,但是程序说没有这样的文件,是为什么呢?

是因为Dll文件没有释放还是什么啊?
应该怎样去解决呢?
希望能解说详细一点,我刚开始做MFC,好多都不会,先谢过各位了。

[解决办法]
那就动态加载吧
baidu-》dll 动态加载
一查便知,很简单滴
[解决办法]
加载dll先在工程中包含函数的原型声明头文件,再把要用的dll文件包含在工程属性的references里
[解决办法]
如何动态加载Dll?
现在有一个动态链接库“UserDef.dll”,里面有个函数原形为 int GetSelect(int nItem),请你用代码实现动态调用(显式调用)(包含文件Sample.Cpp,Sample.h,UserDef.dll已经在Windows目录下)
答:先在Sample.h中定义 typedef int(*pUserDll)(int);
在需要调用此函数前写入代码:
HINSTANCE hModule = LoadLibrary(_T(“UserDef.dll”);//加载DLL
If(NULL == hModule)
{
AfxMessageBox(_T(“Load Error”);
//进行错误处理
}
pUserDll pFun = (pUserDll) GetProcAddress(hMoudle,_T(“GetSelect”));
if(NULL == pFun)
{
AfxMessageBox(_T(“Load Function Error”);
//进行错误处理
}
Else
{
//可以进行函数调用
Int i = 1;
pFun(i);
}
//最后记得要释放dll
FreeLibrary(hMoudle);

读书人网 >C++

热点推荐