问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MFC如何调用DLL(VC++)

发布网友 发布时间:2022-04-27 03:13

我来回答

3个回答

热心网友 时间:2022-06-25 07:49

  你得自己调显示的函数啊。你加载模块了得调相应的函数显示啊。
  步骤如下:
  1.加载动态库(使动态库程序运行)
  HMODULE LoadLibrary(
  LPCTSTR lpFileName
  // 动态库的名称或全路径
  );//返回动态库的实例句柄(HINSTANCE)。
  如果dll文件与.exe文件在同一路径下,只需要写动态库名称,不在同一路径下,则需写带盘符的全路径
  2.
  获取函数地址
  FARPROC GetProcAddress(
  HMODULE hMole,
  // 动态库实例句柄
  LPCSTR lpProcName
  // 函数名称
  );//执行成功,返回函数地址。

  //现在才是你需要注意的地方,比如你dll中有一个show函数是显示对话框的,你就根据上面第2步传show参数得到的函数地址,通过函数指针直接调用就可以显示了。

  3.
  卸载动态库
  BOOL FreeLibrary(
  HMODULE hLibMole
  // 动态库实例句柄
  );追问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是数据库的

热心网友 时间:2022-06-25 07:49

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是必须要实现的不然会造成资源泄漏。

热心网友 时间:2022-06-25 07:50

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根本就没有把函数导出嘛

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
mrna转录试剂盒 windows7应用程序损坏或丢失怎么办? 联想windows7怎么恢复不小心删除的应用 Win7电脑图标不见了如何恢复解决Win7电脑图标丢失问题的有效方法_百 ... 美女主播软件有哪些 什么软件看美女直播? 什么视频直播软件可以免费看女神直播? 钣金工业设计 钣金灰本段用途 关于刮胡子的相关问题 MFC中如何将类封装成DLL并调用(用显式的方法) 怎么用MFC编程啊? 如何vs2010mfc调用matlab 2010生成dll进行编程 MFC中如何调用C# DLL的属性和方法 关于在MFC中调用C#编写的dll的问题! 如何vs2010mfc调用matlab生成dll进行编程 如何在MFC中调用C#编写的DLL MFC Dll编程中全局变量theApp 不会和主程序产生同名冲突吗 mfc中dll创建//MFC 扩展DLL与共享MFC DLL有什么区别 MFC编程如何把dll封装入exe中 衣服标签上写兔毛皮的会是獭兔毛吗我买的衣服上写兔毛皮,但商家说是獭兔,说现在全部统一叫兔毛皮 最近在了解皮草行业,请问有没有介绍专业服务与皮草行业比较权威的资料... 请教MFC制作常规DLL的过程 MFC dll 的 建立 及 调用 大家谁知道有关服装上毛领的分类呀 一般的都会有羊羔毛 狐狸毛 獭兔毛 还有什么品种的呀 详细点介绍哈 关于mfc编程于mfc规则dll 流苏加兔毛中长版 农村信用社定期存单过期怎么取?需要密码吗? 农村信用社存单密印上面写任意二字是不是代表没密码? 继续在农村信用社卡里存钱用不用密码? 怎样在MFC中调用C#编写的DLL MFC DLL 中写如何写类,编译好的DLL中又如何引用这个类 MFC程序怎么封装成DLL VC中MFC源程序怎样生成DLL文件? 父母有房子,现在自己想买房子算是一套房还是二套房 已经签过购房合同并且房产局备案了,算第一套房吗? 夫妻二人名下各有一套房产算一套房还是二套房? 购房合同有未成年人的名字,成年后购房属于一套房还是二套房? 两个城市买房全部贷款,同时进行,全属于1套房吗? 小孩几岁买房算个人第一套房? 我们要买房子,算一套房还是二套房? 只要网签就算一套房吗 一套房共同产权的房,各占50%产权,再买房,算一套还是二套? 我购房的商品期房,未办房证,算第一套房吗? 名下有一套预告房子,在买房算第一套房吗? 在老家首次买房后,在北京买房能算第一套房吗? 我在农村有一套平房,在再城里买一套楼房,算第一套房吗? 想买海尔空调,是挂式的好还是柜式的好呢? iphone铃声设置的歌曲来电却变成了系统铃声 为何苹果手机在同步助手上下载的铃声来电时变成了系统铃声?