有关一个VC的问题 请问是什么操作?

qq_34502495 2016-04-09 04:09:15
首先说明这个是在头文件中的自定义
1: typedef int(_stdcall* LPDllCarInit)(DbConnManager::CDbConnManager *,CConfig *,CObjPtrList<CLogMember > *,CB_ONLINE_FUNC,CB_SENDSMS_MSG);

然后2: LPDllCarInit m_DllCarInit;

再执行文件中 3:m_DllCarInit=(LPDllCarInit)GetProcAddress(m_hDllCarModule,"DllCommInit");获得一个DLL导出函数的地址

4:m_DllCarInit(&m_DbConnManager,&m_Config,&m_listLog,CbGlobeOnLineArrived,CbGlobeSendSmsMsg);
请问最后在第4条中 语句
m_DllCarInit(&m_DbConnManager,&m_Config,&m_listLog,CbGlobeOnLineArrived,CbGlobeSendSmsMsg); 是什么意思(赋值操作吗),
还有能帮我详细说明一下第1条程序是一个自定义的类型吗?(如果是是什么类型?? )
...全文
108 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fhw217 2016-04-09
  • 打赏
  • 举报
回复
第一条是定义一个函数指针类型,定义之后LPDllCarInit就是一个类型,如果没有typedef 那么LPDllCarInit就是一个函数指针变量。
qq_34502495 2016-04-09
  • 打赏
  • 举报
回复
已经知道了 m_DllCarInit(&m_DbConnManager,&m_Config,&m_listLog,CbGlobeOnLineArrived,CbGlobeSendSmsMsg); 相当于 DllCommInit(&m_DbConnManager,&m_Config,&m_listLog,CbGlobeOnLineArrived,CbGlobeSendSmsMsg); 因为m_DllCarInit获取的是DllCommInit函数的地址,所以这条语句实际的实行就是调用DllCommInit函数,括号中是参数 还剩下第一条 请问大侠给小弟解释一下。。。。就此拜谢了
qq_34502495 2016-04-09
  • 打赏
  • 举报
回复
求解 实在有点头晕,用 typedef来放在定义的类型的前面 是定一个别名 然后用指针类型的函数名 是不是可以认为m_DllCarInit 其实就是函数 LPDllCarInit本身呢。

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧