永发信息网

MFC如何调用DLL(VC++)

答案:3  悬赏:60  手机版
解决时间 2021-03-27 12:58
MFC如何调用DLL(VC++)
最佳答案
HINSTANCE hInst = LoadLibrary(L"User32.DLL"); // 加载DLL
if(hInst)
{
// 加载成功
// 定义待访问函数原型
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun = NULL;
// 获取函数地址
fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
if(fun)
{
// 成功
fun(hWnd, RGB(0, 0, 0), 255, 2 | 1);
}
FreeLibrary(hInst); //释放 DLL
}

基本上就是这么一个流程,LoadLibrary->成功->获取函数入口点->调用函数->最后FreeLibrary,注意FreeLibrary是必须要实现的不然会造成资源泄漏。
全部回答
lib跟dll放一块儿
加入代码
#include "db.h" //或者写绝对路径
#pragma comment(lib,"db.lib") //或者写绝对路径
后面直接调用dll中的函数就可以了,参考db.h追问db.h和db.lib已经加进去了,调用call1时,编译成功,但不能生成, error LNK2001: 无法解析的外部符号 _call1,该怎么办啊?追答在dll导出函数前面使用extern "C" __declspec(dllexport)修饰而不是extern,再重新生成dll。
你那个dll根本就没有把函数导出嘛
你得自己调显示的函数啊。你加载模块了得调相应的函数显示啊。
  步骤如下:
  1.加载动态库(使动态库程序运行)
  HMODULE LoadLibrary(
  LPCTSTR lpFileName
  // 动态库的名称或全路径
  );//返回动态库的实例句柄(HINSTANCE)。
  如果dll文件与.exe文件在同一路径下,只需要写动态库名称,不在同一路径下,则需写带盘符的全路径
  2.
  获取函数地址
  FARPROC GetProcAddress(
  HMODULE hModule,
  // 动态库实例句柄
  LPCSTR lpProcName
  // 函数名称
  );//执行成功,返回函数地址。
  //现在才是你需要注意的地方,比如你dll中有一个show函数是显示对话框的,你就根据上面第2步传show参数得到的函数地址,通过函数指针直接调用就可以显示了。
  3.
  卸载动态库
  BOOL FreeLibrary(
  HMODULE hLibModule
  // 动态库实例句柄
  );追问extern int call1 ( int *response )是db.cpp中的,应该是个入口,具体怎么做啊,能不能帮忙写下啊?追答我当调用这个函数能显示对话框啊。
1.typedef int (*DLL_CALL)(int* );//这是将函数指针类型定义出来,在头文件中的类声明前加上
2.在你调用LoadLibrary后会返回一个句柄hDll,想调用函数的时候
DLL_CALL myCall1 = (DLL_CALL) GetProcAddress( hDll, "call1" );
myCall1(/*内面填写你要传的参数*/);
现在就将call1函数调用了。
3.FreeLibrary(hDll);
你得确定call1确实是显示对话框函数,至少我从意思上看不像啊。db是数据库的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么看见卫星图会害怕?
目前东洋参价格,进口多少,国产多少
黑二代砸店横行乡里警察来了都不敢管是什么电
如何做单词卡
小米8这么丑怎么还有这么多人买
高中生有必要背新概念三吗?
急!欧式装修风格,筒灯跟灯带 颜色3000K4000
女命八字入建禄格,命运怎么样
急急急On my way home中哪个是副词和名词,定
化简|2x+1|+|x-2|
比留川游的RAPTY
在深圳西乡码头想看海,怎么走啊
㎡-6m+1>0 咋解
梦泪被替换下场 KPL赛场564天的坚持还有意义
跪求!有没有专门搜索下载BT种子的软件?
推荐资讯
5首古诗以及诗意?
功放音响均衡器怎么调节!!
两个月的小狗脖子上长了个大紫疙瘩怎么办?
我想去美国某某地方参观英语作文50词加翻译
文明6前期怎么打蛮族 文明6新手前期蛮族打法
愚乐坊欢乐斗地主怎么玩
请问一下这是什么硬币? 1947年的,有没有价
I don’t like it at all. It can’t be .A.
excel用什么算式可以使前一列满50后一列显示1
台达PLC主机是DVP32EH对应用什么数字扩展模块
开外汇代理公司国家允许吗?
华为mate7秒拍怎么使用?谢谢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?